当前位置:首页 » 《随便一记》 » 正文

javascript中强制类型转换详解+总结_学不会揍你的博客

9 人参与  2021年12月26日 16:49  分类 : 《随便一记》  评论

点击全文阅读


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()类似,只不过解析时第一个小数点有效,第二个小数点就无效了.


点击全文阅读


本文链接:http://zhangshiyu.com/post/32193.html

类型  返回  字符串  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1