JavaScript运算符与表达式实例代码分析

免费教程   2024年03月07日 1:23  

本篇内容主要讲解“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运算符与表达式实例代码分析”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部