Javascript是什么?。操作人员
我自己创建并回答这个问题,因为谷歌搜索“Javascript?.Operator”并没有提供任何有用的结果 关于……的问题?。需要回答的操作员:Javascript是什么?。操作人员,javascript,operators,Javascript,Operators,我自己创建并回答这个问题,因为谷歌搜索“Javascript?.Operator”并没有提供任何有用的结果 关于……的问题?。需要回答的操作员: 这个接线员叫什么 操作员是如何工作的 typescript是否支持此运算符 这是空传播运算符(也称为存在运算符)。使用运算符称为可选或条件链接 当必须访问中间属性可能为null/未定义的对象的深度嵌套的正确值时,此运算符非常有用 例如考虑此人对象 let person = { name : { first : "John", l
例如考虑此人对象
let person = {
name : {
first : "John",
last : "Doe"
},
age : 31
}
我将访问此人的姓氏作为
let lastName = person.name.last;
这都是宏大的,但是如果名称对象不存在呢?前一行代码将抛出以下错误
未捕获的TypeError:无法读取未定义的属性“last”
要解决此问题,必须检查name属性以确保其存在。这将把我们简单的一行代码转换为以下代码
let lastName;
if(person.name){
lastName = person.name.last;
}
或
第一种选择只是一个麻烦,第二种选择也不是。(我个人认为语法很混乱)第二个选项是检查person是否为truthy如果是,它将检查person.name是否为truthy,如果是person.name.last将保存到lastName中
这就是Null传播运算符的魔力,我可以将上面的所有代码段重写为
let lastName = person?.name?.last
现在,如果person或name为null/undefined,lastName将设置为null/undefined,并且不会抛出错误。对于高度嵌套的对象,这可以节省大量的错误检查和代码行
例如考虑此人对象
let person = {
name : {
first : "John",
last : "Doe"
},
age : 31
}
我将访问此人的姓氏作为
let lastName = person.name.last;
这都是宏大的,但是如果名称对象不存在呢?前一行代码将抛出以下错误
未捕获的TypeError:无法读取未定义的属性“last”
要解决此问题,必须检查name属性以确保其存在。这将把我们简单的一行代码转换为以下代码
let lastName;
if(person.name){
lastName = person.name.last;
}
或
第一种选择只是一个麻烦,第二种选择也不是。(我个人认为语法很混乱)第二个选项是检查person是否为truthy如果是,它将检查person.name是否为truthy,如果是person.name.last将保存到lastName中
这就是Null传播运算符的魔力,我可以将上面的所有代码段重写为
let lastName = person?.name?.last
现在,如果person或name为null/undefined,lastName将设置为null/undefined,并且不会抛出错误。对于高度嵌套的对象,这可以节省大量的错误检查和代码行
好问题好问题好答案好答案