文档章节

Javascript中双等号“==”和三等号“===”的区别

b
 bill_wu
发布于 2015/04/11 08:25
字数 297
阅读 44
收藏 0

我们会在一些代码中看到遇到“===”和“==”的写法,三等号与双等号有什么不同吗?在JavaScript中,===表示“恒等于”,==表示“等于”。=表示“赋值”。

  • =:赋值,在逻辑运算时也有效;
  • ==:等于运算,但是不比较值的类型;
  • ===:完全等于运算,不仅比较值,而且还比较值的类型,只有两者一致才为真。

运行体会一下以下的代码就会清楚了:
alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

在复杂一些:

JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。注意0的相等运算,例如:
""           ==   "0"           // false  
0            ==   ""            // true  
0            ==   "0"           // true  
false        ==   "false"       // false  
false        ==   "0"           // true  
false        ==   undefined     // false  
false        ==   null          // false  
null         ==   undefined     // true  
" \t "    ==   0             // true 

而恒等于不像普通的等于操作符,不会进行强制类型转换。这样的话上述的结果就不太相同了:
""           ===   "0"           // false  
0            ===   ""            // false  
0            ===   "0"           // false  
false        ===   "false"       // false  
false        ===   "0"           // false  
false        ===   undefined     // false  
false        ===   null          // false  
null         ===   undefined     // false  
" \t "    ===   0             // false 

本文转载自:http://www.weste.net/2013/3-1/89405.html

共有 人打赏支持
b
粉丝 1
博文 21
码字总数 3992
作品 0
广州
小程序和Vue关于绑定数据书写上的区别

一、书写格式上 1、绑定事件 Vue: 小程序: Vue是通过:事件名字='回调函数名'。 小程序以或开头,后面跟着事件类型,例如、。自基础库版本1.5.0起,和后可以紧跟一个冒号,其含义不变,如。...

fenerchen
06/02
0
0
从一行等式理解JS当中的call, apply和bind

关于JS当中的call,apply和bind,相信大家和我一样,已经看过了无数篇相关的文章,都有自己的理解。所以这篇文章并非什么科普类的文章,仅仅是把我自己的理解记录下来。 我的学习习惯,是喜欢...

孟飞阳
04/20
0
0
Javascript中的陷阱大集合【译】

英文原文:A Collection of JavaScript Gotchas 译文作者:王国峰 译文标题:Javascript中的陷阱大集合【译】 译文链接:http://www.itivy.com/ivy/archive/2011/11/13/my-javascript-gotch...

谭sir
2012/08/19
0
0
用javascript来回答宇宙外面是什么

宇宙外面是什么呢?估计这个问题要困扰很多人,让我们用一段javascript代码来回答一下。 一、从一段代码说起 var 地球 = {名字 : "地球",女友 : "月亮",外面 : {名字 : "太阳系",老大 : "太阳...

国栋
2014/09/02
0
3
第12天 :布尔值和关系运算符

一、布尔值 数值型里面的值,有无穷多个,因为世界上所有的数字,都是数值型; 字符串型的值,有无穷多个,因为世界上所有的文字、语句都是字符串型; 布尔类型的值,就两个,true、false。 ...

半指温柔乐
2017/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点

前言: 分享 Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点,文章有点长,但比较全面,阅读时间15分钟左右,干货满满。 一、HashMap的那些事 1.1、HashMap的实现原理 1.1.1、...

Java大蜗牛
35分钟前
1
0
nginx模块学习五 expires 浏览器缓存

缓存原理 语法 Syntax: expires [modified] time;expires epoch | max | off;Default: expires off;Context: http,server,location,if in location 例/etc/nginx/conf.d/default.con......

Romanceling
46分钟前
0
0
怎样回答技术面试题?

一、听清题,勿抢答 面试,首先也是一个人与人交流沟通的过程。有些时候,面试官还没说完问题,面试者就会打断说「这个问题我知道...」。打断不利于沟通,同时,这样其实导致面试题没听清。比...

Java小铺
48分钟前
0
0
分布式环境下的并发问题

在分布式环境中,处理并发问题就没办法通过操作系统和JVM的工具来解决,那么在分布式环境中,可以采取一下策略和方式来处理: 避免并发 时间戳 串行化 数据库 行锁 统一触发途径 避免并发 在...

edwardGe
今天
1
0
Golang可变参数

Go 可变参数 语法 如果一个函数最后一个参数被标记为…T,表示函数可以接受一个可变的参数。 比如,我们想在nums中查找num是否存在: func find(num int, nums …int){} 目的是通过find函...

春哥大魔王的博客
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部