您的位置:首页 > Web前端 > JavaScript

js 类型转换

2015-12-21 23:12 656 查看
参考:http://javascript.ruanyifeng.com/grammar/conversion.html
Boolean 中,加不加new,返回的结果是不相同的
if(Boolean(false)) {console.log(’true’)}是不能输出的
if(new Boolean(false)) {console.log(’true’)}是可以输出的
if(Boolean(null)) {console.log(’null’)} 不能输出
if(new Boole(null)){console.log(’null')}输出null

1 Number的转换
Number(123) //123
Number(123sadfa) // NaN ,
Number(‘’) // 0
Number(null) // 0
Number(undefined) // NaN
Number(flase) // 0
对象转换成Number
先获取对象的ValueOf()的值,如果是原始值则直接的用Number(),如果是复合型则用toString,toString返回的原始值则用Number(),返回的是复合型的时候报错

2 Sting
123, null, false ,undefined都是在外层加上引号
对象转换成字符串的时候,先调用toSting, 如果是原始值就用String(),如果返回的是复合值,就调用valueOf(),如果返回的是原始值就调用String(),如果是复合制就报错

3Boolean
所有的对象用Boolean转换后都返回的是true
Boolean(0)
Boolean(null)
Boolean(undefined)
Boolean(NaN)
Boolean('')
这些值都返回的是false
Boolean([]),Boolean({})返回true

自动转换
Bool 自动转换就是调用Boolean的强转

加法都自动的转为字符串,减法自动的转化成数值

特殊的四种表达式
[]+[] //‘’ 先调用valueOf()返回空数组,在调用toString()返回的是空字符串
[]+{}//[jobject object] 空字符串和[object object] 相加
{} +[] //0 js引擎会把第一个空的对象解释为空代码段,所以是+[] ,返回的是0
{}+{} //NaN 返回的+{} 就是NaN

将一个字符串赋值给一个变量,就不能用数组的方式来改变字符串中的某个字符
如果转换成对象的时候可以转换,这是因为原始类型对应的是原始值,对象传递对应的引用类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: