javascript怎么判断变量是否相等


本文摘自PHP中文网,作者青灯夜游,侵删。

判断方法:1、利用相等运算符“==”或者“===”;2、利用数组中的toString()方法;3、利用“Object.is()”方法;4、先利用“JSON.stringify()”将对象或数组转为字符串类型,然后使用“===”进行相等比较。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

判断变量相等的方式

判断变量是否相等,大致有以下一些方式

  • == 以及 ===
  • 利用数组中的toString方法;
  • ES6中的Object.is方法;
  • 利用JSON.stringify,转换为String类型来比较;

=====

==为转换类型比较运算符,===为严格比较运算符,在数据类型相同的情况下,使用==一般不会造成问题。

1

2

3

4

5

let num = 5;

let num2 = 5;

 

num == num2;//true

num === num2;//true

但在数据类型不一致的情况下,==会做一些隐性的类型转换。

1

2

3

4

5

6

7

8

9

10

11

let num = 5;

let str = '5';

 

num == str;//true

num === str;//false

 

'' == false;//true

'' === false;//false

 

null == undefined;//true

null === undefined;//false

隐性转换类型可以带来一些便利性,但也有可能造成不易发现的bug,所以还是更推荐使用===来进行比较,这也是TS之所以流行的原因之一。

此外,上面列举的都是基本数据类型的比较,而在用===比较引用类型时,会存在一定的局限性。

1

2

3

4

5

6

7

8

9

let a = {xx: 1};

let b = a;

 

a === b;//true

 

let c = {xx: 1};

let d = {xx: 1};

 

c === d;//false

在比较引用类型时,===比较的是变量的引用是否相同,而非值,当引用不同时,就会返回false

由此可见,===并不是一枚无往不利的银弹,在比较对象是否相等时,还需要借助其他更可靠的方法。

【推荐学习:javascript高级教程

Array toString方法

前端给后端传参时,后端有时会要求多个参数,隔开,Array toString方法就比较有用了,这一方法也能用作数组比较。

1

2

3

4

let arr = [1,3,5,7,9];

let arr2 = [1,3,5,7,9];

 

arr.toString() === arr2.toString();//true "1,3,5,7,9"

不过也存在一定的局限性,不能用来比较二维及以上的数组、不能包含nullundefinedobjectfunction等,否则容易出错,如下

阅读剩余部分

相关阅读 >>

跨域请求post的解决方法介绍

js的图片处理与合成详解

dom节点 vs 元素,两者有什么区别?

如何解决nodejs服务总是崩溃

javascript创建对象的方法有哪些

javascript中bind是什么意思

javascript添加事件的三种方式

javascript怎么替换所有字符串

javascript函数内部属性的介绍(附示例)

javascript中有哪三种对象

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...