赋值运算符常用的几种方式,JavaScript

JavaScript作为一种广泛使用的脚本语言,不断演变发展。有几种常用的判空方法,用于简化代码编和处理可能的空值情况。我们一起来看看吧🤓

一、逻辑或赋值运算符

		let a = 0;
		if(!a){
			a=1; 
		}
        console.log(a)
        //输出1

等价于

		let a = 0;
		a = a || 1;
		console.log(a)
        //输出1

第一种方式是我们常用判断a变量为真时,给变量赋值为1,看起来不那么简洁,所以咱们也可以用第二种方式,中间的双管道运算符代表判断 null 与 undefind 。

注意:当a不为null并且不为undefind时并且不为0,比如a=0,此时a变量不会被重新赋值为1。

二、逻辑与赋值运算符

	    let b = 1
		if(b){
			b = 2
		}
		console.log(b);
        //输出2

 等价于

		let b = 1
		b = b && 2
		console.log(b);
        //输出2

第二种方式解析:声明并赋值一个变量b的值为2,当b为真(不为null 、undefind、0)就重新赋值2给变量b

三、 逻辑空赋值运算符

		let c ;
		if(c == undefined || c == null ){
			c = 3;
		}
		console.log(c);
        //输出3

等价于

		let c ;
		c = c ?? 3;
		console.log(c);
        //输出3

第二种方式解析:声明一个变量c(此时c的值默认为undefind),两个问号(??)代表为null 或者为 undefind ,这个条件成立时,会重新赋值3给变量c

对象访问链式运算符

		let userInfo = {
			account: 0000001,
			name: "张三",
			age: 18,
			sex: "sale",
			address: null
		};
		
		console.log(userInfo.address.street);
        //报错:TypeError: Cannot read properties of null (reading 'street')

 对象访问链式运算符示例代码解析:声明对象userInfo并赋值,其中address属性为null,我们在业务代码中需要获取到这个对象的address值,此时按照常规的【点】(.)对象获取属性值的方式会抛出异常,如果我们写代码时没有考虑到这层关系,会导致某些业务操作无法进行。针对这种现象,当address值为null或undefind时,为了让程序不会抛出异常,可以使用如下方式进行获取值。(对象访问链式运算符【?.】)

		let userInfo = {
			account: 0000001,
			name: "张三",
			age: 18,
			sex: "sale",
			address: null
		};
		
		console.log(userInfo.address?.street);
        //输出:undefind(程序不会抛出异常,在后面的逻辑中做好非空判断则不会影响程序正常运行)

对象访问链式运算符 如果 address 不为null 且不为undefind,有值的情况下,也是可以正常获取到值的。

        let userInfo = {
			account: 0000001,
			name: "张三",
			age: 18,
			sex: "sale",
			address: {
				province: "HuNan",
				city: "ChangSha",
				street: "XingSha"
			}
		};
		console.log(userInfo.address?.street);
        //输出:XingSha

 最后,在日常的JavaScript开发中,正确、合理使用这些语法特性有助于提高开发效率和代码质量。我们一起进步吧,小伙伴们加油🤏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值