js运算符

一、|| 和 ??

||
eg:var a = obj || {}
代表 obj != 0 || obj === "" || obj != false || obj != null || obj != undefined

时a = obj,否则a={}

??
eg:var a = obj ?? {}
代表 obj != null || obj != undefined

时a = obj,否则a={}

二、! 和 !!
!代表取反,例如!null=true !undefined=true !''=true !100=false !'abc'=false

!!是类型判断,例如

if(a!=null&&typeof(a)!=undefined&&a!=''){
    //a有内容才执行的代码  
}
可以写成
if(!!a){
    //a有内容才执行的代码...  
}

三、?.、??=

?.

let a;
let b = a.name;

因为a下面没有name,所以这样写页面会报错,这时我们可以运用?.叫做可选链,让你有选择性,

let a;
let b = a?.name;

意思就是,只有当a存在,同时a具有name属性的时候,才会把值赋给b,否则就会将undefined赋值给b.重要的是,不管a存在与否,这么做都不会报错.

??=

叫做空值赋值运算符,顾名思义就是当值为空值是才会赋值,也就是值为null、undefined。否则将不会赋值,还是等于原来的值。

let b = '你好';
let a = 0
let c = null;
let d =123‘
b ??= a;  // b = “你好”
c ??= d  // c = '123'

四、||和&&
width>maxWidth && (width=maxWidth);
比如这行代码的意思就相当于

if(width>maxWidth){
	width=maxWidth
}

js中的&&和||本质是什么呢?
&& 和 || 的作用只有一个(定义):
进行布尔值的且和或的运算。当运算到某一个变量就得出最终结果之后,就返回哪个变量。

在javascript中:

以下内容会被当成false处理:"" , false , 0 , null , undefined , NaN

其他都是true。注意:字符串"false"也会被当做true处理,在未转型的情况下他是字符串,属于一个对象,所以是true。

所以:

a || b:如果a是true,那么b不管是true还是false,都返回true。因此不用判断b了,这个时候刚好判断到a,因此返回a。

如果a是false,那么就要判断b,如果b是true,那么返回true,如果b是false,返回false,其实不就是返回b了吗。

a && b:如果a是false,那么b不管是true还是false,都返回false,因此不用判断b了,这个时候刚好判断到a,因此返回a。

如果a是true,那么就要在判断b,和刚刚一样,不管b是true是false,都返回b。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值