js 类型转换
Posted xihuangwutong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 类型转换相关的知识,希望对你有一定的参考价值。
参考: 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
将一个字符串赋值给一个变量,就不能用数组的方式来改变字符串中的某个字符 如果转换成对象的时候可以转换,这是因为原始类型对应的是原始值,对象传递对应的引用类型
以上是关于js 类型转换的主要内容,如果未能解决你的问题,请参考以下文章