请注意:

  • NaN 的数据类型是 number
  • 数组(Array)的数据类型是 object
  • 日期(Date)的数据类型为 object
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined

    1 强制转换

    1.1 string—>number

    特点:只能识别纯数字的字符串
    Number(value)
    1. var a = "10";
    2. var str = "hello"
    3. console.log(Number(a)) //10
    4. console.log(Number(str)) //NaN 不是一个数字

    1.2 boolean —>number

    true —> 1
    false —>0

    2 自动转换 (算术,比较计算)

    将数据转换为number,再进行计算(比较) 特殊:+运算中,只要有一边为字符串,那么结果一定字符串。+号起拼接符作用

1.1 +,-

  1. var a = true;
  2. var b = 10;
  3. var c = "1";
  4. console.log(a+b); //11
  5. console.log(b+c) //"101"
  6. console.log(a-c) //0

1.2 >,<

  1. var a = "hello";
  2. var b = true;
  3. var c = "10";
  4. console.log(a>b);//false NaN>1 NaN和任意值计算,结果都为NaN
  5. console.log(b>c); //false
原始值 转换为数字 转换为字符串 转换为布尔值 实例
false 0 “false” false 尝试一下 »
true 1 “true” true 尝试一下 »
0 0 “0” false 尝试一下 »
1 1 “1” true 尝试一下 »
“0” 0 “0” true 尝试一下 »
“000” 0 “000” true 尝试一下 »
“1” 1 “1” true 尝试一下 »
NaN NaN “NaN” false 尝试一下 »
Infinity Infinity “Infinity” true 尝试一下 »
-Infinity -Infinity “-Infinity” true 尝试一下 »
“” 0 “” false 尝试一下 »
“20” 20 “20” true 尝试一下 »
“Runoob” NaN “Runoob” true 尝试一下 »
[ ] 0 “” true 尝试一下 »
[20] 20 “20” true 尝试一下 »
[10,20] NaN “10,20” true 尝试一下 »
[“Runoob”] NaN “Runoob” true 尝试一下 »
[“Runoob”,”Google”] NaN “Runoob,Google” true 尝试一下 »
function(){} NaN “function(){}” true 尝试一下 »
{ } NaN “[object Object]” true 尝试一下 »
null 0 “null” false 尝试一下 »
undefined NaN “undefined” false 尝试一下 »

1.3 Any-Number

  1. Number();
  2. parseInt(); 解析一个字符串,并返回一个整数。
  3. parseFloat();解析一个字符串,并返回一个浮点数。

1.4 Any-String

  1. String();
  2. toString();数字的字符串表示
  3. +"";