JS -- =、==和===

原创 2016年05月31日 12:02:30

1、“=”为赋值运算符


2、“==”为等于,两边值类型不同的时候,要先进行类型转换,再进行比较。

①如果两个值类型相同,进行 === 比较。 
②如果两个值类型不同,则可能相等。根据下面规则进行类型转换再比较: 
a、如果一个是null、一个是undefined,那么相等。 
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
c、如果任一值是 true,将其转换成1再比较;如果任一值是 false,将其转换成0再比较。 
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,是利用toString或者valueOf方法。 JS核心内置类会尝试valueOf先于toString。但是对于Date,是利用toString转换。 
e、任何其他组合,都不相等。 


3、“===”为严格的等于,不做类型转换,类型不同的一定不等。

①如果类型不同,就不相等。
②如果两个都是数值,并且是同一个值,那么相等;但是,如果其中至少一个是NaN,那么不相等。判断一个值是否是NaN,只能用isNaN()来判断。
③如果两个都是字符串,每个位置的字符都一样,那么相等;否则,不相等。
④如果两个值都是true,或者都是false,那么相等。
⑤如果两个值都引用同一个对象或函数,那么相等;否则不相等。
⑥如果两个值都是null,或者都是undefined,那么相等。


例如:

var a = 2; 
var b = "2"; 

alert(a==b); //true 
alert(a===b); //false 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Vue.js 开发记录

Vue.js 开发记录 背景:开发义乌宾王158商贸城信息管理系统,前端使用“饿了么”开源的element UI,基于vue。主要是为了尝新与替换实验室现有的违背潮流的“jq套件”,以下为开发过程中...

js上传图片插件

基于native.js和html5的APP开发之消息推送

基于native.js的APP开发之消息推送native.js是为了方便html开发时,调用android原生态,实现消息的推送。首先看一下效果图: 在实现的过程中,要在plus初始化结束后,才能调...

jquery.validate.js

C++与js相互调用

JS中的类型检测

判断js对象类型之Object.prototype.toString.call(obj)这里我们使用Object原型上的toString函数,是因为防止需要检测类型的obj对象自己定义了toStrin...

json2.js包

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)