小结JS中数据类型的转换

JavaScript的数据类型主要有:undefined,boolean,null,number,string,object,function等 。JS是弱类型,由数据来决定变量的数据类型是什么,不同的数据类型,在运算中会发生不同的类型转换,以下从隐式类型转换和显示类型转换进行介绍。

隐式类型转换

——在JS运算中,根据不同的场景和规则,自动进行转换。
场景一:算数运算符
规则:

1、加号(+):(1)数学中的加法运算;(2)字符串的拼接,当运算符两边出现一个字符时,会将数值作为字符处理

var a= 1 + 1;      //结果为2
var a= "1" + 1;    //结果为11
var a= "hello" + 1;    //结果为hello1

2、(- * / %):只有数学运算的意义。
(1)当运算符两边出现一个数字字符时,会将字符作为数值处理

var a= "3" - 1;      //结果为2
var a= "3" * 1;      //结果为3
var a= "3" / 1;      //结果为3
var a= "3" % 1;    //结果为0

(2)当运算符两边出现一个正常字符时,如"hello" + 2,属于非法的数值运算,结果为NaN

var a= "hello" - 2;      //NaN
var a= "hello" * 2;      //NaN
var a= "hello" / 2;      //NaN
var a= "hello" % 2;    //NaN

场景二:关系运算符

规则:

(1)当有一个数值和一个字符时,会转成数值;

"2" > 1;      //true;

(2)两个都是字符就没有隐式类型转换,会逐位比较,得出结果,停止比较;

"12" > "13";     //false;

(2)全等===,没有隐式转换,需要值和类型一致才为true。

"2" == 2;    //true; 
"2" === 2;    //false;

场景三:其他转boolean

规则:

(1)数值型:非0为true,0为false;
(2)字符型:非空字符为true,空字符为false(区分空格和空字符);
(3)对象性:除了null,所有对象为true;
(4)undefined、NaN、null:为false;

场景四:其他转数值

规则:

(1)布尔转数值:true为1,false为0;
(2)null转数值:null为0;
(3)undefined、NaN为NaN;

强制(显式)类型转换

——将一种数据类型强制转换成另一种类型的数据,

字符转数值

parseInt();

从左向右一次转换,能转则转,不能转停止;如果第一位就不能转,直接NaN;不识别小数点。

parseFloat();

等同于parseInt,同时可以识别小数点

Math.round();

严格转换,不允许出现任何非数字的字符,否则NaN;取最接近的整数

Number();

严格转换,不允许出现任何非数字的字符,否则NaN;直接转换

数值转字符

.toString();

相当于数值直接套了一个引号

var num = 1;  
var str = num.toString();    //"1"
.toFixed(n);

加引号的同时,四舍五入保留n位小数,不够,补零

var num = 2;  
var str = num.toFixed( 2);    //"2.00"
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容