javascript 类型转换

类型转换就是指将其他的数据类型,转换为String Number 或 Boolean

- 转换为String

 方式一(强制类型转换):

 调用被转换数据的toString()方法

var a = 123;

a = a.toString();

注意:这个方法不适用于null和undefined

由于这两个类型的数据中没有方法,所以调用toString()时会报错

 方式二(强制类型转换):

调用String()函数

 例子:

var a = 123;

a = String(a);

 原理:对于Number Boolean String都会调用他们的toString()方法来将其转换为字符串,

对于null值,直接转换为字符串"null"。对于undefined直接转换为字符串"undefined"

方式三(隐式的类型转换): *****

 为任意的数据类型 +""

var a = true;

a = a + "";

 原理:和String()函数一样

- 转换为Number

 方式一(强制类型转换):

调用Number()函数

var s = "123";

s = Number(s);

 转换的情况:

1.字符串 --> 数字

- 如果字符串是一个合法的数字,则直接转换为对应的数字

- 如果字符串是一个非法的数字,则转换为NaN

- 如果是一个空串或纯空格的字符串,则转换为0

2.布尔值 --> 数字

true转换为1

 false转换为0

3.空值 --> 数字

null转换为0

4.未定义 --> 数字

undefined 转换为NaN

方式二(强制类型转换):

调用parseInt()或parseFloat()

这两个函数专门用来将一个字符串转换为数字的

 parseInt() 可以将一个字符串中的有效的整数位提取出来,并转换为Number

var a = "123.456px";

a = parseInt(a); //123

如果需要可以在parseInt()中指定一个第二个参数,来指定进制

parseFloat() 可以将一个字符串中的有效的小数位提取出来,并转换为Number

var a = "123.456px";

a = parseFloat(a); //123.456

方式三(隐式的类型转换):

 使用一元的+来进行隐式的类型转换

var a = "123";

a = +a;

原理:和Number()函数一样

- 转换为布尔值

 方式一(强制类型转换):

 使用Boolean()函数

var s = "false";

s = Boolean(s); //true

转换的情况

字符串 --> 布尔

除了空串其余全是true

数值 --> 布尔

除了0和NaN其余的全是true

null、undefined ---> 布尔 都是false

对象 ---> 布尔 都是true

 方式二(隐式类型转换):

为任意的数据类型做两次非运算,即可将其转换为布尔值

var a = "hello";

a = !!a; //true

你可能感兴趣的:(javascript 类型转换)