数据转换
其他类型转换为数值
Number('1') // 1
parseInt('1') // 1
parseInt('011') === 11,这是十进制
如果后面加8变成八进制 parseInt('011',8) === 9
parseInt('aaaa') === NaN
parseInt('1aaaaa') === 1
ps: parseInt是面试重点
parseFloat('1.22')// 1.22
老司机喜欢的用法:
'1' - 0 === 1
'1.23' - 0 === 1.23
/***********/
+'1' === 1
+'1.11' === 1.11
+'.1' === 0.1
+'-1' === -1
-'-1' === 1
其他类型转string
- number、boolean类型可通过toString方法转换成字符串
- symbol不能用toString方法
- undefined、null不能用toString方法,会报错
- object类型用toString只能转换出'[object Object]'
- String()或者window.String()能转换null和undefined
(1).toString(); // '1'
true.toString(); // 'true'
null.toString(); // error:Cannot read property 'toString' of null
undefined.toString(); // error:Cannot read property 'toString' of undefined
String(null); // 'null'
window.String(null); // 'null'
老司机:
1 + '' // '1'
true + '' // 'true'
null + '' // 'null'
undefined + '' // 'undefined'
var obj = {};
obj + '' // '[object Object]'
1 + '1' // 等于(1).toString + '1' -> '11'
**其他类型转换成boolean
Boolean(1) // true
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // 空字符串false
Boolean(' ') // 空格字符串true
Boolean(null) // false
Boolean(undefined) // false
Boolean({}) // 空对象true
Boolean([]) // 空数组true
老司机:
!!1 // true
!!0 // false
!!NaN // false
!!'' // false
!!' ' // true
!!{} // true
!!null // false
!!undefined // false
网友评论