首先,先做个简单的介绍,让先有个直观的认识

== equality 等同     === identity 恒等

==  两边值类型不同的时候,要先进行类型转换,再比较。
=== 不做类型转换,类型不同的一定不等。

举例说明:

"1"  ==  true

类型不同,"=="将先做类型转换,把true转换为1,即为 "1"  ==  1;

此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1;

此时,"==" 左右两边的类型都为数值型,比较成功!

如果比较:"1"  ===  true 左侧为字符型,右侧为bool布尔型,左右两侧类型不同,结果为false;

如果比较:"1"  ===  1      左侧为字符型,右侧为int数值型,左右两侧类型不同,结果为false;

如果比较: 1   ===  1       左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;

如果比较: 1   ===  2      左侧为int数值型,右侧为int数值型,左右两侧类型相同,但数值大小不同,结果为false;

简而言之就是 "==" 只要求值相等; "===" 要求值和类型都相等 ^_^

============================================================================

下面,我们对"=="和"==="的区别,做一些较为深入的剖析介绍

先说 ===,这个比较简单,具体比较规则如下:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,具体比较规则如下:

1、如果两个值类型相同,进行 === 比较,比较规则同上
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合(array数组等),都[不相等]。

举例说明:
"1" == true
类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。

= 赋值运算符
== 等于
=== 严格等于
例:
var a = 3;
var b = "3";

a==b 返回 true
a===b 返回 false

因为a,b的类型不一样   ===用来进行严格的比较判断,结果为false

=============

var priceOfApple = "3元"; // 苹果的价格
var priceOfBanana = "3.5元"; // 香蕉的价格
priceOfApple = parseInt( priceOfApple ); // 解析苹果的价格
var priceOfBanana2 = parseInt( priceOfBanana ); // 解析香蕉的价格
if( ( priceOfApple===3 ) && ( priceOfBanana2 === 3 ) // 检查解析是否成功
&& ( parseFloat( priceOfBanana ) ===3.5 ) )
{
alert( "苹果的价格:" + priceOfApple // 输出水果的价格
+ "/n香蕉的价格的整数部分:" + priceOfBanana2
+ "/n香蕉的价格:" + parseFloat( priceOfBanana ) );
}

浅析JavaScript和PHP中三个等号(===)和两个等号(==)的区别相关推荐

  1. php 三个等号与两个等号,浅析JavaScript和PHP中三个等号(===)和两个等号(==)的区别...

    本文,米扑博客总结 JavaScript和PHP中三个等号(===)和两个等号(==)的区别 == equality 等同(值比较) === identity 恒等(值和类型都比较) ==  两边值类 ...

  2. JavaScript中的ReferenceError和TypeError两种错误的区别

    转自JavaScript中的ReferenceError和TypeError两种错误的区别 作为前端工作人员,在调试JavaScript程序的时候经常遇到两个错误:ReferenceError和Typ ...

  3. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

  4. 三个等号和两个等号的区别(“===”与“==”的区别)

    1.===:三个等号我们称为等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false. 例:100==="100&quo ...

  5. JavaScript里面三个等号和两个等号的区别

    == equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较.  ==,不做类型转换,类型不同的一定不等. 下面分别说明:  先说 ===,这 ...

  6. 一个等号(=)和三个等号和两个等号的区别(“===”和“==”)

    一个等号(=)表示把1赋值给变量啊 ==:称为等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行比较: ===:称为(恒等于)等同符,当两边值的类型相同时,直 ...

  7. 三个等号和两个等号的区别(“===”和“==”)

    1.===:称为等同符,当两边值的类型相同时,直接比较值,若类型不相同,直接返回false: 2.==:称为等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行 ...

  8. Java中三种方法交换两个变量的值

    1.中间变量 是最普也是最广泛使用的交换方式: 这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换. 2.加减运算 前提只能是数字 因为这种 ...

  9. python一个等号和两个等号_有车以后视频号商业方法论:我们用视频号再造一个公众号...

    近期行业内探讨自己做视频号内容定位时,一直有两种声音作为大家思考未来视频号潜力的前提和指引方向. 第一 ,抖音已经完成了体验传递,情绪表达,趣味探索的占领:留给视频号的空间只有价值表达,观点传递,圈子 ...

最新文章

  1. 深入理解JVM之JIT编译器(二)
  2. placement new--《C++必知必会》 条款35
  3. java wav 切割_WAV音频定长分段切取
  4. 定时器驱动数码管c语言程序,74hc595驱动数码管时间程序
  5. Spring Boot 单例模式中依赖注入问题
  6. 五大常用算法:分治、动态规划、贪心、回溯、分支限界
  7. Pytorch框架实战——102类花卉分类
  8. Perl的Net::SSH::Perl模块实现远程登陆ssh
  9. C++17特性一览(转载)
  10. Adobe CS3教程安装问题
  11. 技术系列课回顾 | 网易云信变声技术之变调不变速算法
  12. 两个计算机怎么共享一台打印机共享,两台电脑如何共享打印机 多台电脑共享一台打印机设置方法【详细教程】...
  13. docker安装dejavu
  14. 招商银行笔试题之爱吃喵粮的小招喵
  15. Millet谷仓:新型电商势在必行
  16. Italvibras M3/4-S02振动电机M3/20-S02 3/100-S02 3/200-S02 MVSI 3/300-S02振动电机
  17. 第十章 搭建nRF52开发环境(SES)
  18. Excel制作四分位图
  19. Redis的多路复用机制
  20. 288.软件开发过程与软件测试

热门文章

  1. linux 文本 编辑 软件下载,文本编辑软件 Atom 1.5.0 已经发布下载
  2. java 泛型重载_Java泛型编程与多态、重载的同与不同
  3. java查找字符串是否有单词_java – 用于搜索单词/字符串是否包含在实...
  4. html设置布局颜色设置,css布局中置背景颜色
  5. Python学习笔记:利用sorted()函数对序列排序
  6. 安卓案例:利用XML配置菜单
  7. 【BZOJ1001】狼抓兔子,平面图转对偶图(从最小割到最短路)
  8. 14.图像透视——投影几何性质,平行线(Parallel Lines),消失点(Vanishing Point)_3
  9. 【英语学习】【Daily English】U14 Transportation L01There will be a car exhibition next month
  10. 【英语学习】【Daily English】U09 Fashion L04 It helps if you look the part