在js中"=="和"===",经常被用来判断两个变量是否相等,它们的区别在于前者会进行隐式类型转换比较
var a ="1"var b =1
a == b //只比较了内容,做了隐式类型转换true
a === b //不仅比较内容,还比较了数据类型,不会做隐式类型转换false
第一个比较只是比较了a和b的内容,第二个比较不仅比较了a和b的内容,还比较了a和b的数据类型
!
=
!=
!=和
!
=
=
!==
!==的区别和用法
和上面的类似,js中"!="和"!==",经常被用来判断两个变量是否不相等,它们的区别在于前者会进行隐式类型转换比较
var a ="1"var b =1
a != b //只比较了内容,做了隐式类型转换false
a !== b //不仅比较内容,还比较了数据类型,不会做隐式类型转换true
!
!
!!
!!的用法
在js中,“!”是用来做逻辑运算的,可以与任何变量进行逻辑运算并将其转化为布尔值,“!!”则是在当前“!”的逻辑
再次取反运算,我称之为套娃运算
举个栗子:var a //我们要判断一个变量已声明并且不为null并且不为空字符串,你会想到怎么写if(a!=null&&a!=undefined&&a!=''){//a有内容才执行的代码 }
这样写吗?no,no,no。在知道"!!"的用法之前,你可以这样写,但是知道之后,你只需要这样,就行了
if(!!a){//a有内容才执行的代码... }
事实上,就是进行了两次取反运算,并返回一个布尔值,注意a变量需要声明,如果变量未声明去判断的话会报错