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
将一个字符串赋值给一个变量,就不能用数组的方式来改变字符串中的某个字符
如果转换成对象的时候可以转换,这是因为原始类型对应的是原始值,对象传递对应的引用类型
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
将一个字符串赋值给一个变量,就不能用数组的方式来改变字符串中的某个字符
如果转换成对象的时候可以转换,这是因为原始类型对应的是原始值,对象传递对应的引用类型
相关文章推荐
- HTML5入门2---js获取HTML元素的值
- JavaScript window对象 - 浏览器对象模型(BOM),使 JavaScript 有能力与浏览器“对话”
- 模块——js功能(倒计时,幻灯)
- 了解 JS 原型
- jsoup抓取借书记录
- JS入门经典笔记
- js使用file上传图片-----(1)选择文件类型的判断和图片的显示
- How to check the version of JSF
- JS对象转化为JSON字符串
- JS_数据类型
- javascript 浏览器调用原理
- js的一些学习笔记2
- 玩玩EXPRESSJS
- JSP第二篇
- Javascript数组常用方法
- JS入门笔记
- javascript大神修炼记(7)——OOP思想(多态)
- js回调函数
- JavaScript具有自动垃圾回收机制
- 用js实现同一页面多个不同运动效果2