码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript的条件表达式"=="(等于)和"==="(严格等于)的区别

时间:2015-01-25 18:02:51      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

使用"==",如果两个值类型不同,他们可能相等,因为"=="默认会进行类型转换,转换规则比较复杂:
    a、如果一个是null、一个是undefined,那么[相等]。
    b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
    c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
    d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。
 
使用"===",两个值的类型和数值必须都相等,他们才相等,"==="在进行比较时不会进行数据类型的转换。
10 == "10"  // return true
10 === "10" // return false
建议永远不要使用"=="。
 

JavaScript的条件表达式"=="(等于)和"==="(严格等于)的区别

标签:

原文地址:http://www.cnblogs.com/happyfreelife/p/4248469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!