美文网首页饥人谷技术博客
JS中=、==、===的区别

JS中=、==、===的区别

作者: 辉夜乀 | 来源:发表于2017-04-06 08:19 被阅读14次

JS中的=、==、===是不同的

“=”表示赋值,

把后面的值赋给前面

var a=1  // 赋值

“==”相等运算符,

宽松的比较两个数据,如果两个数据类型相同,就直接比较,如果两个数据类型不同,则会先转化数据类型相同,再比较

  • 原始类型间的比较
// 原始类型的数据会转换成数值类型再比较

1 == true // true
// 等同于 1 === 1

0 == false // true
// 等同于 0 === 0

2 == true // false
// 等同于 2 === 1

2 == false // false
// 等同于 2 === 0

'true' == true // false
// 等同于 Number('true') === Number(true)
// 等同于 NaN === 1

'' == 0 // true
// 等同于 Number('') === 0
// 等同于 0 === 0

'' == false  // true
// 等同于 Number('') === Number(false)
// 等同于 0 === 0

'1' == true  // true
// 等同于 Number('1') === Number(true)
// 等同于 1 === 1

'\n  123  \t' == 123 // true
// 因为字符串转为数字时,省略前置和后置的空格
  • 对象与原始类型比较
// 对象与原始类型的值比较时,对象转化成原始类型的值,再进行比较。

[1] == 1 // true
// 等同于 Number([1]) == 1

[1] == '1' // true
// 等同于 String([1]) == Number('1')

[1] == true // true
// 等同于 Number([1]) == Number(true)
  • undefined 和 null
false == null // false
false == undefined // false

0 == null // false
0 == undefined // false
// undefined 和 null与其他类型的值比较时,结果都为false

undefined == null // true
undefined 和 null 比较时,结果为 true

“===” 严格相等运算符

严格相等运算符(===)比较它们是否为“同一个值”。如果两个值不是同一类型,严格相等运算符(===)直接返回false

  • 不同类型的值
1 === "1" // false
true === "true" // false
// 不同类型的值直接返回 false
  • 同一类的原始类型值
1 === 0x1 // true
// 十进制和十六进制的 1 ,是相同的值,同一类型
  • 同一类的复合类型值
    两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。
{} === {} // false
[] === [] // false
(function (){} === function (){}) // false
// 严格相等运算比较的是,它们是否引用同一个内存地址

相关文章

  • 单引号和双引号

    JS中 js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和...

  • 概念集合

    JS中的数组和Arrary的区别 js中的数组就是array对象

  • JS中=、==、===的区别

    JS中的=、==、===是不同的 “=”表示赋值, 把后面的值赋给前面 “==”相等运算符, 宽松的比较两个数据,...

  • js中[]、{}、()区别

    https://blog.csdn.net/qq_20069429/article/details/83267887

  • 知识点杂谈

    1.js中null和undefined的区别 在js中null和undefined都表示空,但它们还是存在一定区别...

  • 静态服务器模块

    Node.js 中 __dirname 和 ./ 的区别 Node.js 中,__dirname 总是指向被执行 ...

  • JS的[ ]和{}的区别

    JS中[]和{}的区别:image.png

  • js 对象和jquery对象的比较

    1、js 对象和jquery对象的区别 jquery对象是js中的new Object()生成的普通对象 2、js...

  • jQuery前端框架--笔记

    1,JS对象和jQuery对象的区别 jQuery就是JS中的new Object生成的普通对象。 2,JS对象和...

  • js中 == 和 === 的区别

    今天看一些项目文档,找到了一个ele的node面试文档,里面总结了一些招聘问题,我感觉还是有点干货中文地址Engl...

网友评论

    本文标题:JS中=、==、===的区别

    本文链接:https://www.haomeiwen.com/subject/fxyfattx.html