JavaScript 转换为简单值
■知识点
在逻辑运算环境中,所有复合型数据对象转换为布尔值的都为true。
在数值运算环境中,对象会尝试调用valueOf()方法,如果不成功,再调用toStringO方法,获取一个值,然后尝试把该值转换为数字。如果转换成功,则取用该值参与运算;如果转换失败,则取用NaN参与运算。
在字符串运算环境中,对象会调用toStringO方法获取对象的字符串表示,以此作为转换的值。
数组转换为简单值时,会调用toStringO方法获取一个字符串表示,然后根据具体的运算环境,再把该字符串转换为对应类型的简单值。
S 如果为空数组,则转换为空字符串。
S 如果仅包含一个元素,则取该元素值。
S 如果包含多个元素,则转换为多个元素的值组合的字符串,并以逗号分隔。
函数转换为简单值时,会调用toStringO方法获取字符串表示。对于普通函数,则返回的是函数代码本身,然后根据不同运算环境,再把该字符串表示转换为对应类型的值。
■实例设计
【示例】下面的代码创建3个不同类型的对象,然后参与逻辑与运算,因为不管其值是什么,凡是对象转换为布尔值的都为true,所以才会看到不同的显示结果。
var b = mew Boolean(false); //包装false为对象
var n = new Number(0); //包装数字0为对象
var s = new String(""); //包装空字符串对象
b && console.log(b); //如果b为true,则显示"false"
n && console.log(n); //如果n为true,则显示"0"
s && console.log(s); //如果s为true,则显示""
点击加载更多评论>>