jQuery 中 === 与 == 的区别是什么? 下面本篇文章就来给大家介绍一下 jQuery 中 === 与 == 的区别. 有一定的参考价值, 有需要的朋友可以参考一下, 希望对大家有所帮助.
'=='运算符表示抽象相等; 而,'===='运算符表示严格相等.
jQuery 中 === 与 == 的区别
==, 两边值类型相同时, 等同于 ===; 不同的时候, 要先进行类型转换, 再比较.
===, 不做类型转换, 类型不同的一定不等.
"==" 运算符
"==" 运算符会在进行相等比较之前会进行必要值的类型转换. 简单来说, 就是先把值转换为一样的类型再进行相等比较. 就算比较的值的类型不相同, 也可以通过强制转换类型成一样的, 不会发生错误.
如果两个操作数不是同一类型, 那么相等运算符会尝试一些类型转换, 然后进行比较
1, 如果一个值是 null, 另一个是 undefined, 那么相等.
2, 如果一个值是数字, 另一个是字符串, 先将字符串转换为数字, 然后使用转换后的值比较.
3, 如果其中一个值是 true, 则将其转换为 1 再进行比较. 如果其中一个值是 false, 则将基转换为 0 再进行比较.
4, 如果两个都是字符串, 每个位置的字符都一样, 那么相等; 否则不相等 .
5, 如果两个值都引用同一个对象或函数, 那么相等; 否则不相等.
6, 如果两个值都是 null, 或者都是 undefined, 那么相等.
"===" 运算符
"===" 运算符, 它不会执行类型转换, 因此如果两个值不是相同类型, 那么当比较时, 它将返回 false. 如果比较两个变量, 它们的类型彼此不兼容, 则会产生编译错误.
1, 如果两个值类型不相同, 则它们不相等.
2, 如果两个值都是 null 或者都是 undefined, 则它们不相等.
3, 如果两个值都是布尔值 true 或 false, 则它们相等.
4, 如果其中一个值是 NaN, 或者两个两个值都是 NaN, 则它们不相等. NaN 和其他任何值都是不相等的, 包括它本身!!!
通过 x!==x 来判断 x 是否为 NaN, 只有在 x 为 NaN 的时候, 这个表达式的值才为 true.
5, 如果两个值为数字, 且数值相等, 则它们相等. 如果一个为 0, 另一个为 - 0, 则它们同样相等.
6, 如果两个值为字符串, 且所含的对应位上的 16 位数完全相等, 则它们相等.
如果它们的长度或内容不同, 则它们不等. 两个字符串可能含义完全一样且所显示出手字符也一样, 但具有不同编码的 16 位值. JavaScript 并不对 Unicode 进行标准化的转换, 因此像这样的字符串通过 "===" 和 "==" 运算符的比较结果也不相等.
7, 如果两个引用值同一个对象, 数组或函数, 则它们是相等的. 如果指向不同的对象, 则它们是不等的. 尽管两个对象具有完全一样的属性.
更多 web 开发 https://www.html.cn/ 知识, 请查阅 HTML 中文网 !!
来源: http://www.css88.com/qa/jquery/15931.html