运算符?? ,?. ,??= 使用方法

 简单写了个小demo,直接贴代码吧

<script>
	// 1、?? 空值合并运算符
	console.log(null ?? 'right null'); // right null;
	console.log(undefined ?? 'right undefined'); // right undefined
	console.log(true ?? 'right true'); // true
	console.log(false ?? 'right false'); // false
	console.log(7 ?? 'right numbert'); // 7
	console.log('' ?? 'right empty text'); // ''
	// 总结:当左侧是null或者undefined的时候,返回右侧内容,否则返回左侧内容
	
	// 2、?. 链判断运算符
	const param = {
		name: 'Carmen',
		cat: {
			name: 'Mustard'
		},
		play(){
			console.log('happy');
		}
	};
	console.log(param?.name); // Carmen
	console.log(param.cat?.name); // Mustard
	console.log(param.dog?.name); // undefined
	console.log(param.play?.()); // happy undefined
	console.log(param?.play()); // happy & undefined
	console.log(param.eat?.()); // undefined
	// console.log(param?.eat()); // Uncaught TypeError: param?.eat is not a function
	let arr = ['one', 'two', 'three'];
	console.log(arr?.[0]); // one
	console.log(arr?.[3]); // undefined
	let fun = () => console.log('fun is function');
	console.log(fun?.()); // fun is funtion & undefined
	// console.log(fake?.()); // Uncaught ReferenceError: fake is not defined
	// 总结:用来判断对象的属性值,当前对象若不为null,则返回该对象下面的属性或方法;为null则返回undefined
	
	// 3、??= 空赋值运算符
	let a = 0;
	a ??= 1;
	console.log(a); // 0
	let b = null;
	b ??= 1;
	console.log(b); // 1
	let c = undefined;
	c ??= 1;
	console.log(c); // 1
	let d = true;
	d ??= 1;
	console.log(d); // true
	let f = false;
	f ??= 1;
	console.log(f); // false
	let e = '';
	e ??= 1;
	console.log(e); // ''
	let g = NaN;
	g ??= 1;
	console.log(g); // NaN
	let h = {};
	h ??= 1;
	console.log(h); // {}
	let i = [];
	i ??= 1;
	console.log(i); // []
	// 总结:在左侧值是null或者undefined的时候,进行右侧赋值
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值