JavaScript之JS数据类型转换

前言

在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。
JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。
object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印
来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,
类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。。

一、显式数据类型转换

1.1 转数字(Number类型)

1)Number转换

var a = '123';
a = Number(a);
  • 如果转换的内容本身就是一个数值类型的字符串,那么将来在转换的时候会返回自己。
  • 如果转换的内容本身不是一个数值类型的字符串,那么在转换的时候结果是NaN。
  • 如果要转换的内容是空的字符串,那以转换的结果是0。
  • 如果是其它的字符,那么将来在转换的时候结果是NaN。

2)parseInt()

var a = '123';
a =  parseInt(a);
  • 忽略字符串前面的空格,直至找到第一个非空字符,还会将数字后面的非数字的字符串去掉。
  • 如果第一个字符不是数字符号或者负号,返回NaN。
  • 会将小数取整。(向下取整)

3)parseFloat();//浮点数(小数)

与parseInt一样,唯一区别是parseFloat可以保留小数。

1.2 转字符串(String)

1)String()

var a = 123;
a = String(a);

2)toString()的方法来进行转换(包装类)

var a = 123; a = a.toString();
undefinednull不能用toString。

1.3 转boolean类型

var a ='true'; a = Boolean(a);

注意:在进行boolean转换的时候所有的内容在转换以后结果都是true,
除了:false、”“(空字符串)、0、NaN、undefined。

二、隐式转换

2.1 转Number

var a = '123';
a=+a;

加减乘除以及最余都可以让字符串隐式转换成number。

2.2 转string

var a = 123;
a = a + '';

2.3 转boolean

var a = 123;
a = !!a;

三、值类型之间的数据类型转换

3.1 数字和字符串使用+运算符

数字和字符串如果使用+运算符进行操作,那么会将数字先转换为字符串,然后进行
字符串连接操作:

var text = 'asd';
var num = 123;
alert(text+num);

3.2 布尔值参与的+运算符操作

如果有布尔型参与,那么首先会将布尔值转换为对应的数字或者字符串,然后再进行相应的
字符串连接或者算数运算。

var bool = true;
var num = 8;
console.log(bool + num);

上面的代码是先将true转换为数字1,然后再进行算数加运算。

var bool = true;
var num = "8";
console.log(bool + num);

上面的布尔值会被转换为对应的字符串形式”true”,然后再进行字符串连接。

3.3 减法操作

如果进行减法操作,那么两个操作数都会先被转换为数字,然后在进行算数运算。

var bool = true;
var num = "8";
console.log(bool - num)

true会被转换为数字1,字符串”8”会被转换为数字8,然后进行算术运算。
乘,除,大于,小于跟减的转换也是一样.

3.4 ==等性运算 ###

undefined和null比较特殊,它们两个使用==运算符返回值是true。

console.log(undefined==null);

其他值类型进行比较的时候都会将运算数转换为数字

console.log("3"==3);

上面的代码会将字符串”3”转换成数字,然后再进行比较。

console.log("1"==true);

上面的代码会分别将”1”和true转换成数字,然后进行比较。

猜你喜欢

转载自blog.csdn.net/zhang918784312/article/details/81706240