Javascript的隐式转换

JavaScript的数据类型分为两类

原始类型: number, string, boolean, null, undefined
对象类型: Function, Array, Date ……

一. ‘+’号和’-‘号

var x='The answer is ' + 42     // "The answer is 42"
"37" + 7    //377 number转换成string
"37" -7     //30  string转换成number

巧用+/-规则转换类型
比如:
1. number转换成字符串
    37 + ""     //"37"

2. 字符串转换成数字
    "37" - 0    // 37

二、等于 ==

"1.23" == 1.23      // true
0 == false          // true
null == undefined   // true
new Object() == new Object()    //false
[1,2] == [1,2]      // false

类型相同,同===
类型不同,尝试类型转换和比较:
    null == undefined  // true
    number == string   // string转number
    boolean == ?       // 不论?是什么类型,先把boolean转换成number, true转换为1, false转换为0
    object == number|string  // 尝试对象转为基本类型

三、严格等于 ==

a === b
类型不同,返回false
类型相同:
    null === null
    undefined === undefined
    NaNNaN
    new Objectnew Object

猜你喜欢

转载自blog.csdn.net/shfscut/article/details/79752190