javascript中强制类型转换详解+总结
Posted 学不会揍你
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中强制类型转换详解+总结相关的知识,希望对你有一定的参考价值。
javascript中一共有六种类型:Number,String,Boolean,Undefined,Object,function.可以用typeof来查看声明的变量的类型.注意,typeof是操作符,不是函数.(tips:建议用js写代码的时候,声明变量后直接初始化,因为typeof对未声明和未定义的变量都会返回undefined,这样就没法区分这个变量未声明还是未初始化)
如果有没看懂的地方可以在评论区留言,我争取一天内回复.
先简单介绍下这五种基本类型
Boolean类型
Boolean对 " "(空字符串),null,undefined,0,NaN,false是false,其他的都是true.
Null类型
Null类型只有一个值--null,null表示一个空对象指针,所以用typeof检测null会得到object.
undefined值是派生自null的,所以alert(null==undefined)会返回true.(tips:如果声明的变量后面是要存储对象的话,可以设置为null,这样就会知道这个变量是否已经保存了一个对象的引用.)
Undefined类型
Undefined类型也只有一个值:undefined.对未声明和未初始化的值使用typeof都会返回undefined.
Number类型
浮点型:保存浮点型数据需要的内存空间是整数类型的两倍,所以ECMAscript会将一个浮点型数据转化为整型保存.比如:1.0(数字本身表示的就是整数), 10.(小数点后没有数字)
NaN:用于表示一个本身应该返回数值但是没返回数值的情况.调用isNaN的时候,会隐式地调用Number().
String类型
字符串可以用" "或' '表示,任何字符串的长度都可以通过访问其length属性取得,如果字符串中包含双字节字符,那么length属性不会精确地返回字符串中的字符数目.
显示类型转换:可以把非数值转化为数值的函数:Number(),parseInt(),parseFloat().
一.Number(mix)
mix代表里面的参数可以是任意类型.Number(mix)表示把mix转换成number类型,转换后mix将变成Number类型,而mix转换后的值只有两种:具体转换成的Number类型值和NaN.下面是六种类型的返回情况.
(1)Boolean:true会返回1,false会返回0
(2)Number:返回输入的值
(3)Undefined:NaN
(4)String: 1.如果字符串中是整数/浮点数的话,会将String转化成整数/浮点数返回.
2.如果是空字符串,则返回0.
3.如果字符串里是16进制,则会转换成十进制输出.
4.如果字符串中含有非数字的内容,则会返回NaN.
(5)Object:会先调用valueOf(),如果转换结果是NaN的话,则调用toString().
(6)Null:返回0.
eg:var a = Number('666');
console.log(typeof(a)+":"+a);
//输出结果为Number:666
eg:var a = Number(undefined);
console.log(typeof(a)+":"+a);
//输出结果为Number:NaN
二.parseInt(String),parseInt(String,radix)
1.parseInt()在转换字符串时,会忽略字符串前面的空格,直至找到第一个非空格字符,如果第一个字符不是空格或者负号,parseInt()会返回NaN.
2.如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有字符,或者遇到了一个非数字字符.
eg:"123abc"会被转换为123,且"abc"会被完全忽略.
eg:"123.456"会返回"123"因为"."不是有效字符.
3.如果指定了parseInt的第二个参数,eg:parseInt("123",16)就会按照十六进制解析字符串
三 .ParseFloat()
与parseInt()类似,只不过解析时第一个小数点有效,第二个小数点就无效了.
以上是关于javascript中强制类型转换详解+总结的主要内容,如果未能解决你的问题,请参考以下文章