JavaScript运算符与表达式实例代码分析
本篇内容主要讲解“JavaScript运算符与表达式实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript运算符与表达式实例代码分析”吧!
一、===
严格相等运算符,用作逻辑判断
1==1//返回true1=='1'//返回true,会先将右侧的字符串转为数字,再做比较1==='1'//返回false,类型不等,直接返回false
typeof查看某个值的类型
typeof1//返回'number'typeof'1'//返回'string'二、||
需求,如果参数n没有错传递,给它一个【男】
推荐做法:
functiontest(n='男'){console.log(n);}
你可能的做法:
functiontest(n){if(n===undefined){n='男';}console.log(n);}
还可能是这样:
functiontest(n){n=(n===undefined)?'男':n;console.log(n);}
一些老旧代码中的可能做法(不推荐):
functiontest(n){n=n||'男';console.log(n);}
它的语法是:
值1 || 值2
如果值1 是 Truthy,返回值1,如果值1 是 Falsy 返回值 2
三、??与?.??
需求,如果参数n没有传递或是null,给它一个【男】
如果用传统办法:
functiontest(n){if(n===undefined||n===null){n='男';}console.log(n);}
用??
functiontest(n){n=n??'男';console.log(n);}
语法:
值1 ?? 值2
值1 是 nullish,返回值2
值1 不是 nullish,返回值1
?.
需求,函数参数是一个对象,可能包含有子属性
例如,参数可能是:
letstu1={name:"张三",address:{city:'北京'}};letstu2={name:"李四"}letstu3={name:"李四",address:null}
现在要访问子属性(有问题)
functiontest(stu){console.log(stu.address.city)}
现在希望当某个属性是 nullish 时,短路并返回 undefined,可以用 ?.
functiontest(stu){console.log(stu.address?.city)}
用传统方法:
functiontest(stu){if(stu.address===undefined||stu.address===null){console.log(undefined);return;}console.log(stu.address.city)}四、...
展开运算符
作用1:打散数组,把元素传递给多个参数
letarr=[1,2,3];functiontest(a,b,c){console.log(a,b,c);}
需求:把数组元素依次传递给函数参数
传统写法:
test(arr[0],arr[1],arr[2]); // 输出 1,2,3
展开运算符写法:
test(...arr); // 输出 1,2,3
打散可以理解为【去掉了】数组外侧的中括号,只剩下数组元素
作用2:复制数组或对象
数组:
letarr1=[1,2,3];letarr2=[...arr1];//复制数组
对象:
letobj1={name:'张三',age:18};letobj2={...obj1};//复制对象
注意:展开运算符复制属于浅拷贝,例如:
leto1={name:'张三',address:{city:'北京'}}leto2={...o1};
作用3:合并数组或对象
合并数组:
leta1=[1,2];leta2=[3,4];letb1=[...a1,...a2];//结果[1,2,3,4]letb2=[...a2,5,...a1]//结果[3,4,5,1,2]
合并对象:
leto1={name:'张三'};leto2={age:18};leto3={name:'李四'};letn1={...o1,...o2};//结果{name:'张三',age:18}letn2={...o3,...o2,...o1};//结果{name:'李四',age:18}
复制对象时出现同名属性,后面的会覆盖前面的
五、[] {}[]
解构赋值
用在声明变量时:
letarr=[1,2,3];let[a,b,c]=arr;//结果a=1,b=2,c=3
用在声明参数时:
letarr=[1,2,3];functiontest([a,b,c]){console.log(a,b,c)//结果a=1,b=2,c=3}test(arr);{}
用在声明变量时:
letobj={name:"张三",age:18};let{name,age}=obj;//结果name=张三,age=18
用在声明参数时:
letobj={name:"张三",age:18};functiontest({name,age}){console.log(name,age);//结果name=张三,age=18}test(obj)
到此,相信大家对“JavaScript运算符与表达式实例代码分析”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!