一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。
=== 判断规则
如果类型不同,就[不相等] 
如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 
如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 
如果两个值都是true,或者都是false,那么[相等]。 
如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 
如果两个值都是null,或者都是undefined,那么[相等]。 
== 判断规则:
如果两个值类型相同,进行 === 比较。 
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较: 
如果一个是null、一个是undefined,那么[相等]。 
如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 
如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核 心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我 也不大懂) 
任何其他组合,都[不相等]。
 
alert(0 == “”); // true
alert(0 == false); // true
alert(“” == false); // true
alert(0 === “”); // false
alert(0 === false); // false
alert(“” === false); // false
===用来进行严格的比较判断
alert(1 == “1″); // true
alert(1 === “1″); // false
 
就是不等于 !=为 ==的非运算  !== 为===的非运算

JS中 == ,===, !=, !==的区别的更多相关文章

  1. jquery中read与js中onload区别

    在JavaScript中,onload函数是最经常使用的,几乎涉及到JavaScript的童鞋都少不了要接触它.这个函数的作用就是等待网页完全装载完了以后再去执行代码块内的语句,因为按照文档流的执行顺 ...

  2. js中===与==区别

    本文出自:http://www.cnblogs.com/yiki/archive/2012/05/08/2489687.html 1.对于string,number等基础类型,==和===是有区别的 ...

  3. js中==和===区别

    简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢, 这么理解: 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换 ...

  4. js中“==”与“===”区别

    直接上代码 if(2==='2'){ console.log(true) }else{ console.log(false) } //打印结果 false if(2=='2'){ console.lo ...

  5. php和js中数组的总结

      php中数组的表示方法:array()或者[] js中数组的表示方法:new array()或者[] 一.php中初始化命名数组 在PHP中声明数组的方式主要有两种:一是应用array()函数声明 ...

  6. js中== 和===中的区别

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. js中的等值运算符(抽象相等==与严格相等===的区别)

    js中的等值运算符 js中的相等分为抽象相等和严格相等,他们有什么区别呢. 在说具体算法前,先提下JS数据类型,JS数据类型分为6类:Undefined Null String Number Bool ...

  8. js中数组遍历for与for in区别(强烈建议不要使用for in遍历数组)

    js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){ alert(array[i]) } //for ...

  9. JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别

    JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...

随机推荐

  1. django 保存中文到mysql 报错django.db.utils.DatabaseError: Incorrect string value: '\xE5\xBE\x88\xE7\x81\xB5

    分析: 1.尝试在Python中对数据转码成utf8,'中文'.encode("utf-8"),还是报错 2.观察堆栈发现应该是操作mysql数据库的时候,将数据插入表里出错 所以 ...

  2. streaming简介

    mapreduce和hdfs采用java实现,默认提供java编程接口 streaming框架允许任何程序语言实现的程序在hadoop mapreduce中使用 streaming方便已有的程序向ha ...

  3. [C++]String::find

    一.定义 string (1) size_t find (const string& str, size_t pos = 0) const; c-string (2) size_t find ...

  4. java 对象的创建

    jvm在创建对象时,首先判断该对象所对应的类是否已经被加载.链接和初始化,如果没有则先执行类的加载过程.类的加载过程见 java类加载. 类加载检查通过后,虚拟机在堆中为新生对象分配内存. 内存分配完 ...

  5. jmeter --- 监控器 Plugins (&jconsole)

    jmeter --- 监控器 Plugins (&jconsole) Jmeter本身没有监控服务器资源的功能,需要添加额外插件 一.监控原理图 二.Jmeter-Plugs下载和安装 官网上 ...

  6. Vivado使用技巧(1)

    Vivado使用技巧 (1) 1. 2.复位准则: 3. 4. 5. 6. 7. 8.

  7. Tribon/AM 数据库名字的含义

    收集在这里备用 数据库名 Tribon环境变量 内容描述 船体型线数据库 SB_CGDB 船体外型信息 型表面,船体曲线,板缝 船体结构数据库 SB_OGDB 船体模型信息 板材数据库 SB_PLDB ...

  8. QT编写的网页浏览器网页乱码解决方法

    1.如果是本地网页,可以将网页编码改为GB2312 <meta http-equiv="Content-Type" content="text/html; char ...

  9. [蓝桥杯]ALGO-84.算法训练_大小写转换

    题目描述: 问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出. 输入格式:输入一 ...

  10. 【mysql】索引优化记录

    基础知识 Innodb存储引擎 支持行锁 支持事务: Myisam存储引擎 只支持表锁: 不支持事务: 常见索引列表 独立的列 前缀索引(索引选择性) 多列索引(并不是多个单列索引,索引顺序很重要) ...