JavaScript的类型转换

强制类型转换

1. Number()
Number()进行类型转换比parseInt()要更加严格,它是对参数一个一个进行转换的
流程如下:

  • 先调用变量的valueOf()方法转换为基本类型值,一般对象转换后仍然为对象;
  • 如果valueOf()转换后仍然为对象,则调用toString()方法转换为字符串,对于不能够转换为字符串的,则转换为类型的字符串表现形式;能够转换为字符串的则转换为字符串,如果转换结果为基本类型,再使用Number
  • 如果toString()转换后仍然为对象,则报错

2. String()

  • 对于基本类型的值,转换为他们的字符串形式
  • 对于对象类型的值,流程如下:
    • 显先使用toString()转换为字符串形式
    • 然后使用valueOf()转换 ,如果返回为原生类型的值,则使用String()进行转换
    • 如果valueOf()结果为对象,则报错

3. Boolean()
除以下五个值转换为false外,其他都转换为true;

null
undefined
+0或-0
'' // 空字符串
NaN

自动类型转换

自动转换的规则为:预期什么类型的值,就调用该类型的转换函数
1. 算数元素
在算数运算中,如果是加法运算,数字自动转换为字符串;其他运算符,字符串转换为数字;

参考

类型转换

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