平时在开发项目的时候经常会读取某些对象的属性值,而当这个对象为undefined或者null时,如果直接利用.运算符操作,那么将会直接报错:
所以为了避免出现这种情况,我们需要在读取属性值之前对对象进行空值判断,常用的方法就是三元运算符、if else条件语句判断,以及&&运算符,这些方法会导致代码比较冗余,影响代码可阅读性,维护起来也比较麻烦。
?.(可选链运算符)
let obj = { name: "ggb" };
let obj2;
let name = obj?.name; //ggb
let name2 = obj2?.name; //undefined
是不是瞬间感觉高大上起来了,并且代码也简洁明了,可选链运算符主要用在读取对象属性值的场景下,它替代传统的if else语句对对象进行空值判断,当对象存在时读取该对象属性值,不存在时就为undefined。
并且?.运算符可以多次调用:
let obj = {
name: "pzw",
age: "12",
child: {
gender: "男"
let gender = obj?.child?.gender; //男
?? (空值合并运算符)
我相信很多小伙伴在开发的时候遇到过使用!运算符来判断一个变量是否存在时,它会把0也会认为是非状态,例如:
let a = 0;
if(!a){
a = 0;
} else {
console.log(a); // 0
我们如果需要识别0,就得额外添加条件 if( !a || a===0),而当你碰到这个情况的时候,??运算符可以登场了
let a = 0;
let b = 2;
let c;
c = a ?? b;
console.log(c); // 0
??运算符只有在左边值为undefined或者null时,才会取右边的值。
??=(空值赋值运算符)
在开发过程中,我们通常会利用接口来获取数据,那么当接口返回的数据为空时,我们需要设置一个默认值来保证页面中各级调用能够正常运行。
let a;
let b = { name: "pzw" };
let c = 0;
a ??= b; // a值为{ name: "pzw" }
c ??= b; // c值为0
??=运算符只有在左边值为undefined或者null时,才会将右边的值赋给左边。
以上就是我对新增的运算符的了解,欢迎各位小伙伴指点改正。
使用场景:平时在开发项目的时候经常会读取某些对象的属性值,而当这个对象为undefined或者null时,如果直接利用.运算符操作,那么将会直接报错:所以为了避免出现这种情况,我们需要在读取属性值之前对对象进行空值判断,常用的方法就是三元运算符、if else条件语句判断,以及&&运算符,这些方法会导致代码比较冗余,影响代码可阅读性,维护起来也比较麻烦。?.(可选链运算符)let obj = { name: "ggb" };let obj2;...
javascript运算符The JavaScript new operator is used to create a new object.
JavaScript new运算符用于创建新对象。
You follow new with the object class to create a new object of that type:
在对象类之后跟随new ,以创建该类型的新对象...
new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
const car1 = new Car('Eagle', 'Talon TSi', 1993);
console.log(car1.make);
// "Eagle"
2. new的实现
new关键字会在这段代
一、算数运算符
首先第一个叫做算术运算符,一共七个,都有‘+、-、*、/、%、++、--、’,前面四个都是老朋友了,从小学就开始学习的加减乘除,而后米那三个就比较陌生了,分别叫做“自增”“自减”以及“取模”,什么意思?咱们先从第一个慢慢说。
‘+’加顾名思义,可以对两个值进行加法..
文章目录一.扩展运算符二.最大值案例三.实战运用1.参数序列2.结合div3.函数调用(合并操作 + 相加操作)4.扩展运算符后面可以放置表达式5.与解构赋值结合6.函数的返回值7.扩展运算符可以将字符串转成数组
一.扩展运算符
扩展运算符(spread):…
作用:它可以将一个数组转为用逗号分隔的参数序列。
总结:不管数字外面有什么符号,全部去掉。
二.最大值案例
<script>
function _max(array) {
var max=Math.max(...a
JavaScript 的诞生JavaScript 的历史JavaScript 诞生记JavaScript 的设计缺陷为什么Javascript有设计缺陷?JavaScript 的10个设计缺陷
JavaScript 的历史
JavaScript(简称“JS”)诞生于1995年。布兰登 • 艾奇(Brendan Eich,1961年~),JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理
1.ES5语法变量特点: avr变量会提升,没有块级作用域
2.ES6新增两种变量声明方式(let与const),类似于let:变量不会提升允许修改,有块级作用域,,不允许重复声明
3.const声明:常量,只可以声明的时候赋值一次,之后无法修改
1.2-解构赋值语法
1.2.1-对象的解构赋值
解构赋值语法 : 其实就是变量赋值语法的简写形式
1:取出 对象的属性 赋值 给变
文章目录扩展运算符使用扩展运算符复制数组使用扩展运算符克隆数组带对象的扩展运算符剩余参数参考文档
在本教程中,您将借助示例了解 JavaScript 扩展运算符。
扩展运算符是JavaScript ES6版本中新增的可用功能。
扩展运算符
扩展运算符…用于扩展可迭代类型或数组。例如,
const arrValue = ['My', 'name', 'is', 'Jack'];
console.log(arrValue); // ["My", "name", "is", "Jac
JavaScript 里 var a =a ||{} 啥意思?var a;
if(a === 0 || a === "" || a === false || a === null || a === undefined) a = {}那句话的定义。还有你这种情况 a 是函数的入口参数吧,代码是这样的对吧function(a){
var a = a || {}
}它等价于function(a){
ES6里面新增的符号和运算符ES6里面新增的运算符ES6里面新增的符号(Symbol(符号描述))注意:
ES6里面新增的运算符
我们以前都知道有算术运算符、逻辑运算符和关系运算符还有位运算符吧!
在这里我就是要说一下ES6里面新增的…运算符
这个运算符的特点:
1、它是类似于arguments的,但是又有不同,…运算符用在参数里面时必须要为参数的最后一个而且他的这个前面也可以加参数
2、他主要用...