js类型转换与引用类型详解(Boolean(2)


var s1 = String(null);//"null"
var oNull = null;
var s2 = oNull.toString();//causes an error


二、引用类型
引用类型通常叫作类(class),也就是说,遇到引用值时,所处理的就是对象。ECMAScript定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。

1.Object类
ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其他类中(被覆盖)。

Object类的属性:

(1).Constructor----对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。

(2).Prototype----对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。

Object类的方法:

(1).HasOwnProperty(property)----判断对象是否有某个特定的属性。必须用字符串指定该属性(例如:o.hasOwnProperty("name"))。

(2).IsPrototypeOf(object)----判断该对象是否为另一个对象的原型。

(3).PropertyIsEnumerable(property)----判断给定的属性是否可以用for..in语句进行枚举。

(4).ToString()----返回对象的原始字符串表示。不同的ECMAScript实现具有不同的值。

(5).ValueOf()----返回最适合该对象的原始值。对于许多类,该方法返回的值都与toString()的返回值相同。

2.Boolean类
在ECMAScript中很少使用Boolean对象,即使使用,也不易理解。
例如:

复制代码 代码如下:


var oFalseObject  = new Boolean(false);
var bResult = oFalseObject  && true;//outputs  true;


原因:在Boolean表达式中,所有对象都会被自动转换为true。

3.Number类
Number.MAX_VALUE等等特殊值都Number类的静态属性。要得到数字对象的Number原始值,只需要使用valueOf()方法:
var iNumber = oNumberObject.valueOf();
除从Object类继承的标准方法外,Number类还有几个处理数值的专用方法。

toFixed()方法:
返回的是具有指定位数小数的数字的字符串表示。方法能表示具有0到20位小数的数字,超出这个范围的值会引发错误。
如:

复制代码 代码如下:


var oNumberObject = new Number(99);
aler(oNumberObject.toFixed(2));//outputs "99.00"


toExponential()方法:
返回的是用科学记数法表示的数字的字符串形式。该方法也有一个参数,指定要输出的小数的位数。例如:

复制代码 代码如下:


var oNumberObj = new Number(99);
alert(oNumberObj.toExponential(1));//outputs "9.9e+1"


toPrecision()方法:
根据最有意义的形式来返回数字的预定形式或指数形式。它有一个参数,即用于表示数的数字总数(不包括指数)。

复制代码 代码如下:


var oNumberObj = new Number(99);
alert(oNumberObj.toPrecision(1));//outputs "1e+2" ==100


可以看出,toPrecision()方法会对数进行舍入,从而得到尽可能接近真实值的数。
如:

复制代码 代码如下:


var oNumberObj = new Number(99);
alert(oNumberObj.toPrecision(2));// outputs "99"
alert(oNumberObj.toPrecision(3));// outputs "99.0"


toFixed()、toExponential()和toPrecision()方法都会进行舍入操作,以便用正确的小数位数正确地表示一个数。

toLocaleString()方法:
可以在页面上格式显示,如5210.50显示为5,210.50,但是如果在使用其值时,应该用parseFloat($("N_YJJE").value.replace(//,/g, ""));的形式替换掉逗号,后得到其值。

注意:与Boolean对象相似,Number对象也很重要,不过应该少用这种对象,以避免发生潜在的问题。只要可能,都使用数字的原始表示法。

4.String类
String对象的valueOf()方法和toString()方法都会返回String型的原始值:

复制代码 代码如下:


alert(oStringObj.valueOf() == oStringObj.toString());//outputs "true"


String类具有属性length,它是字符串的字符个数:

复制代码 代码如下:


var oStringObj = new String("hello world");
alert(oStringObj.length);outputs "11"


注意:即使字符串包含双字节的字符,每个字符也只算一个字符。

charAt()方法:
返回的是包含指定位置处的字符的字符串:

复制代码 代码如下:


var oStringObj = new String("hello world");
alert(oStringObj.charAt(1));outputs "e"


charCodeAt()方法:
返回的是包含指定位置处的字符代码的字符串:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdydyp.html