Javascript的Number()
1、如果下边代码块想在控制台直接输入,请记得先console.log(),因为控制台里直接输入的话有些结果可能会和console.log结果不同
2、下边代码首尾不管多少空格都不会改变结果(如Number(’ 123 ') ->123),我觉得是内部调用了String对象的trim方法(去掉首尾所有空格),但是一直证明不了…
3、第一次发博客,排版什么的可能不是很好,
下边是我总结了大部分情况的,要是有错希望大家帮我纠正!
<script>
console.log(
Number(),//0
//死记硬背也要背下来(注意下边四个必须是数字类型,不能是字符串,字符串则为NaN)
Number(undefined), //NaN
Number(null), //0
Number(true), //1
Number(false),//0
Number('undefined'), //NaN
Number('null'), //NaN
Number('true'), //NaN
Number('false'),//NaN
//字符串
//1、空字符串、空格字符串
//2、内容纯数字->正常数字
//3、内容非数字->NaN(除了最下边的特殊情况)
Number(''),//0
Number(' '),//0
Number('123'),//123
Number('45a'),//NaN
//对象
//数组记法:arr.length<=1可以正常转,arr.length>1全部NaN
//1、下边情况可以转数字
Number([]),//0
Number([' ']),//0
Number(['']),//0
Number([5]),//5
Number(['5']),//5
//2、String实例对象(下边的newString使用时会把参数转化成字符串,然后返回一个String的实例对象。如果参数不是字符串却有字母,会当变量使用,如new String(12a)会报错)
Number(new String(123)),//123
Number(new String('45a')),//NaN
Number(new String([Infinity])),//Infinity
//3、其他对象全部NaN
Number([1,2]),//NaN
Number([,5]),//NaN
Number({}),//NaN
//一些特殊情况,最好全记住,虽然不常用,但是可以装逼和防止面试官的突袭
//1、无穷大和无穷小(Infinity,-Infinity)
//2、科学计数法
//3、进制转换(只能用前缀,后缀会报错)
//注意:八进制(前缀是0)在字符串里不是八进制数字
Number(Infinity),//Infinity
Number(-Infinity),//-Infinity
Number('Infinity'),//Infinity
Number('-Infinity'),//-Infinity
Number('3e2'),//300 3*10^2得来的
Number(3e2),//300
Number('0x10'),//16,0x是十六进制前缀,转换成十进制是16
Number(0x10),//16
Number('011'),//11,正常字符串转换
Number(011),//9,八进制 -> 十进制
);
</script>