其他值类型转换成数字类型的规则?
一、undefined(未定义型)类型转化成数字类型
console.log(Number(undefined)); // 输出结果:NaN
二、null(空类型)类型转化成数字类型
console.log(Number(null)); // 输出结果:0
三、Boolean(布尔型)值类型转换成数字类型
console.log(Number(true)); // 输出结果:1
console.log(Number(false)); // 输出结果:0
四、String(字符串)类型转换成数字类型
console.log(Number('ikun')); // 输出结果:NaN
console.log(Number('666ya')); // 输出结果:NaN
console.log(Number('369')); // 输出结果:369
console.log(Number('你好')); // 输出结果:NaN
console.log(Number('true')); // 输出结果:NaN
console.log(Number('false')); // 输出结果:NaN
五、symbol转换成数字类型(Es6)
// symbol是一种基本数据类型
console.log(Number(Symbol(42))); // 输出结果:报错
六、复杂数据类型(列如:{},[])转换成数字类型
console.log(Number([1, 2, 3])); // 输出结果:NaN
console.log(Number([1, 2, 3].join(''))); // 输出结果:123
console.log(Number({ name: 'zs', age: 18 })); // 输出结果:NaN
let obj = { name: 'zs', age: 18 }
console.log(JSON.stringify(obj).replace('{', '').replace('}', '').replace(',', '').split(':').join('')); // 输出结果: "name""zs""age"18
console.log(Number(JSON.stringify(obj).replace('{', '').replace('}', '').replace(',', '').split(':').join(''))); // 输出结果:NaN
通过以上复杂数据数据类型转换成数字类型得出结论:
1、复杂数据类型要想转化成数字类型需要先转换成基本数据类型,否则结果为NaN
2、复杂数据类型转换成字符串型,字符串包裹的内容有数字外的字母或文字都返回NaN,其次包裹的如果全是数字,则返回数字类型。
总结:
- undefined(未定义型)类型转化成数字类型 为
NaN - null(空类型)类型转化成数字类型 为
0 - Boolean(布尔型)值类型转换成数字类型 true为
1false为0 - String(字符串)类型转换成数字类型 结论:字符串包裹的内容有数字外的字母或文字都返回
NaN,其次包裹的如果全是数字,则返回数字类型。 - symbol转换成数字类型 结果:控制台
报错