javascript中的=,==,===到底有什么区别呢
2016-04-25 10:54
627 查看
1.= :赋值运算,赋值使用;
2.==
:比较运算,仅比较自动转换后的值是否相等;
==,根据以下规则:
① 如果两个值类型相同,进行 === 比较。
②
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、任何其他组合,都[不相等]。
3.===
:比较运算,比较值和变量类型是否相等;
===,这个比较简单。下面的规则用来判断两个值是否===相等:
①
如果类型不同,就[不相等]
②
如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
③
如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
④
如果两个值都是true,或者都是false,那么[相等]。
⑤
如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 ⑥
如果两个值都是null,或者都是undefined,那么[相等]。
2.==
:比较运算,仅比较自动转换后的值是否相等;
==,根据以下规则:
① 如果两个值类型相同,进行 === 比较。
②
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、任何其他组合,都[不相等]。
3.===
:比较运算,比较值和变量类型是否相等;
===,这个比较简单。下面的规则用来判断两个值是否===相等:
①
如果类型不同,就[不相等]
②
如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
③
如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
④
如果两个值都是true,或者都是false,那么[相等]。
⑤
如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 ⑥
如果两个值都是null,或者都是undefined,那么[相等]。
相关文章推荐
- 【转】外国朋友出的js题目,你能对几道
- Javascript 地图库收集
- Jsonp跨域获取json数据原理
- 原生JS实现旋转木马式图片轮播插件
- javascript设计模式--原型模式
- 基于Gson库的json/bean解析工具
- JS实现带导航城市列表以及输入搜索功能
- 简单描述js闭包概念
- Js New一个函数和直接调用的区别
- 序列化和反序列化
- json.jar
- JSON的解析
- EOS隐藏错误提示层的js方法
- 通过uploadify上传文件中的问题
- 在Javascript中 声明时用"var"与不用"var"的区别
- seajs模块化前端js代码1.hello world
- DLL+ ActiveX控件+WEB页面调用例子
- js操作map
- js substring()字符串截取函数
- @JsonInclude