javascript怎么判断变量是否相等


当前第2页 返回上一页

1

2

3

[1,3,5,[2,4,6]].toString();//"1,3,5,2,4,6"

[1,null,undefined,'',2].toString();//"1,,,,2"

[{xx:2},window,1,2].toString();//"[object Object],[object Window],1,2"

Object.is方法

Object.is是ES6中新增的方法,与===非常类似,同样用作比较两个值是否相等。

1

2

3

Object.is(1,1);//true

Object.is('str','str');//true

Object.is({},{});//false

不同的是在判断+0-0NaNNaN时的区别。

1

2

3

4

5

+0 === -0 //true

NaN === NaN //false

 

Object.is(+0, -0) //false

Object.is(NaN, NaN) //true

在处理兼容性问题时,polyfill可以这么写。

1

2

3

4

5

6

7

8

9

10

11

if (!Object.is) {

  Object.is = function(x, y) {

    if (x === y) {

      // 针对+0 不等于 -0的情况

      return x !== 0 || 1 / x === 1 / y;

    } else {

     // 针对NaN的情况

      return x !== x && y !== y;

    }

  };

}

JSON.stringify

JSON.stringify方法用于把对象或者数组转换为一个 JSON字符串,得出的字符串便可以用作对象的比较。

1

2

3

4

5

let obj = {name: 'lin', age: 24};

let obj2 = {name: 'lin', age: 24};

 

obj === obj2;//false

JSON.stringify(obj) === JSON.stringify(obj2);//true

JSON.stringify弥补了===无法准确比较对象的局限,不过它也有一定的局限性,在遇到undefinedfunction以及symbol值时会忽略。

另外,值得一提的是利用JSON.parseJSON.stringify可实现对象深拷贝,局限性同上。

何时使用它们

不一样的场景可能有不一样的需求,如果只比较基本数据类型,那么===就足够了,如果想“一劳永逸”,那么付出一定的成本使用自定义方法无疑是有必要的。

在日常反复的开发中,还是要多多探索吧。

更多编程相关知识,请访问:编程视频!!

以上就是javascript怎么判断变量是否相等的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

一起看看javascript如何获取页面上被选中的文字

node.js爬取豆瓣数据实例

javascript加密方法有哪些

浏览器启用javascript什么意思

5种javascript中解构(destructuring)的使用方法

javascript中的垃圾回收和内存泄漏

深入分析ajax的进度事件(附示例)

学习javascript地理位置信息api

学习使用javascript实现utf-8编解码

javascript怎么去除小数点后的数

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




打赏

取消

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

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

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

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

评论

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