JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别


Posted in Javascript onMay 31, 2016

一、JavaScript"=="的作用

1.当==两边的内容是字符串时,则比较字符串的内容是否相等。
2.当==两边的内容是数字时,则比较数字的大小是否相等。
3.当==两边的内容是对象或者是对象的函数属性时,则比较内存地址是否相等。

二、==和===的区别

==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase。

举例说明:

<script type="text/javascript">
alert("\"\"==true的结果是:"+(""==true));
alert("\"\"===true的结果是:"+(""===true));
alert("\"\"==的结果是:"+(""==));
alert("\"\"===的结果是:"+(""===));
</script>

"1" == true类型不同,"=="将先做类型转换,把true转换为1,即为 "1" == 1;此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1;此时,"==" 左右两边的类型都为数值型,比较成功!

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

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

运行结果:

JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别

总结:

==和===的区别:"==" 只要求值相等; "===" 要求值和类型都相等

下面在给大家详细说明下JavaScript里面三个等号和两个等号的区别

== equality 等同,=== identity 恒等。

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

==,不做类型转换,类型不同的一定不等。

下面分别说明:

先说 ===,这个比较简单。

下面的规则用来判断两个值是否===相等:

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、任何其他组合,都[不相等]。

举例:

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

= 赋值运算符
== 等于
=== 严格等于

例:

var a = 3;
var b = "3";

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

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

Javascript 相关文章推荐
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
原生js实现给指定元素的后面追加内容
Apr 10 Javascript
如何将网页表格内容导入excel
Feb 18 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 Javascript
JQuery工具函数汇总
Jun 15 Javascript
JavaScript 数组some()和filter()的用法及区别
May 20 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
Node.js 回调函数实例详解
Jul 06 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
May 31 #Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 #Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 #Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 #Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 #Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
May 31 #Javascript
BootStrap创建响应式导航条实例代码
May 31 #Javascript
You might like
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP实现简单日历类编写
2020/08/28 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
javascript实现页面滚屏效果
2017/01/17 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
python的移位操作实现详解
2019/08/21 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
季度思想汇报
2014/01/01 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
委托证明书
2014/09/17 职场文书
律师授权委托书范本
2014/10/07 职场文书
Python预测分词的实现
2021/06/18 Python
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB