文档章节

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

b
 bill_wu
发布于 2015/04/11 08:25
字数 297
阅读 51
收藏 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
博文 27
码字总数 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

没有更多内容

加载失败,请刷新页面

加载更多

首个智能运维项目开源!腾讯织云Metis,用算法替代人为指定规则

10月20日,腾讯织云Metis 智能运维学件平台在OSCAR开源先锋日上宣布,正式对外开源。Metis 是AIOps(Algorithmic IT Operations),即智能运维领域的首个开源产品。智能运维主张通过算法从海...

腾讯开源
25分钟前
1
0
Java面试170题

1、面向对象的特征有哪些方面? 2、访问修饰符public,private,protected,以及不写(默认)时的区别? 3、String 是最基本的数据类型吗? 4、float f=3.4;是否正确? 5、short s1 = 1; s1 = ...

lanyu96
26分钟前
0
0
利用Ant脚本生成war包

使用ant脚本前的准备 1、下载一个ant安装包。如:apache-ant-1.8.4-bin.zip。解压到E盘。 2、配置环境变量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。 3、检...

狼王黄师傅
28分钟前
1
0
优雅的写出类

前言 虽然现在已经是ES6的时代,但是,还是有必要了解下ES5是怎么写一个类的。 本文详述JavaScript面向对象编程中的类写法,并分步骤讲述如何写出优雅的类。 一、例子 例子为一个轻提示组件T...

peakedness丶
31分钟前
1
0
Python基础案例教程

一、超市买薯片 # 用户输入薯片的单价danjia = float(input("薯片的单价"))# 用户输入购买袋数daishu = int(input("购买的袋数"))# 计算总价zongjia = danjia * daishu# 输出结果...

linuxprobe16
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部