关于JS声明的优化写法
最近越来越注重语法,但有两个疑问请各位大佬指教一下。一、以下代码为例,event是一个传参,传过来后我会里面的属性全部声明出来,以便后续引用,我是这样做的,要把所有属性的列举一遍,其实有没有更优的写法?
let {
collection,
doc,
where,
updater,
updaterPhoneNumber,
fields,
values,
things,
whatIsUp,
changeLog
} = event || null
二、以下代码为例,有一个对象changeLog,首先它并非一定存在,然后我还有在它的基础上再新加多个属性,我是这样写的,其实有没有更优的写法?
let thisLog = changeLog || {}
thisLog.updater = updater
thisLog.updaterPhoneNumber = updaterPhoneNumber
thisLog.thing = thing
thisLog.when = db.serverDate()
谢谢各位大佬。
第一个是解构赋值, 如果 event 不存在 岂不是要解构 null ,直接就报错了.... event||{}; 假如存在 肯定要申明出来,不然后续维护起来,都不知道变量从哪里来的,你这个申明我觉得没毛病...
第二个是赋值 我一般习惯 Object.assign(obj,{age:1}) 第一个,我觉得没必要把 event 对象中的属性全部解构出来,等用到的时候再通过 event.doc 这样的形式获取即可
第二个,我觉得如果不为 changeLog 添加 updater 这些属性的话,可以这样写
const updater = 'xxx';
const updaterPhoneNumber = 'xxx';
const thing = 'xxx';
const thisLog = {
...(changeLog || {}),
updater,
updaterPhoneNumber,
thing,
when: db.serverDate(),
} 冰镇苏打水 发表于 2021-9-12 09:25
第一个是解构赋值, 如果 event 不存在 岂不是要解构 null ,直接就报错了.... event||{}; 假如存在 肯定要申 ...
event || null不会报错,实际的结果是如果event存在这个值,则声明出来。如果存在对应值,则没有被声明。
例如:
let {
collection,
doc
} = event || null
如果collection存在,则生成了一个collection的变量。
如果doc不存在,则不会生成一个doc变量。 webshi 发表于 2021-9-12 09:27
第一个,我觉得没必要把 event 对象中的属性全部解构出来,等用到的时候再通过 event.doc 这样的形式获取即 ...
你好,第二个这样写确实可以,...(changeLog || {})这个写法是什么名堂,叫什么?谢谢 cqwcns 发表于 2021-9-12 10:01
你好,第二个这样写确实可以,...(changeLog || {})这个写法是什么名堂,叫什么?谢谢
知道了,扩展运算符。 cqwcns 发表于 2021-9-12 09:53
event || null不会报错,实际的结果是如果event存在这个值,则声明出来。如果存在对应值,则没有被声明。 ...
那假如 event 是个 undefined 或者null呢?
不支持解构吧? 冰镇苏打水 发表于 2021-9-12 19:22
那假如 event 是个 undefined 或者null呢?
不支持解构吧?
我的环境是event一定存在的,只是它里面的值不一定存在而已。
页:
[1]