我是靠谱客的博主 糊涂篮球,最近开发中收集的这篇文章主要介绍对JS中操作符的一些理解:[]= =![] =>true,{}= =!{}=>false,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
首先通过一个典型的例题来加深对上面方法的理解:[]= =![] =>true,{}= =!{}=>false.
1.根据运算符优先级,!的优先级大于= =,所以先计算![],!将变量转换为布尔类型。注意:null,undefined,NaN,空字符串(’’)取反为true,其余都为false。以此![] = false。
2.根据上面的规则,如果有一个操作数为布尔,在比较相等性之前转换为数值,因此,![] = 0.
3.如果有一个操作数是对象,另一个操作数不是,则调用对象的valueof()方法,得到基本类型再进行比较,如果对象没有valueof(),则调用toString()。
这里需要特别注意:对于[],valueof仍为空数组,因此需要调用toString方法,[].toString()=>’’,因此,[]=’’。
4.如果一个操作数是字符串,另一个操作数是数值,则在比较之前将字符串转为数组。Number(’’)=0,因此,[] = = ! []为true。
5.同理,{} = = !{}。!{}=false=0,{}.toString = [object,object],因此{} = = !{}为false.

下面补充一下valueOf()方法:用于返回指定对象的原始值 [Object.valueOf()]

对象返回值
Array数组实例对象本身
Boolean布尔值
Date以毫秒数存储的时间,从UTC1970.1.1开始计算
Fuction函数本身
Number数字值
Object对象本身
String字符串值

最后简单介绍一下比较运算符:
1.如果是对象,通过toPrimitive转换对象再进行比较。
2.如果是字符串,通过Unicode字符索引比较。

最后

以上就是糊涂篮球为你收集整理的对JS中操作符的一些理解:[]= =![] =>true,{}= =!{}=>false的全部内容,希望文章能够帮你解决对JS中操作符的一些理解:[]= =![] =>true,{}= =!{}=>false所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部