js定义多个变量并且都初始化为null的简易写法
js中定义三个变量 let resourceId = uniqueNo = unitName = null; 能这样写吗,有其他简单写法吗?
js中定义三个变量 let resourceId = uniqueNo = unitName = null; 能这样写吗,有其他简单写法吗?
const makeNull = {
[Symbol.iterator]: function* () {
while (true) {
yield null;
}
}
};
const [a, b, c] = makeNull;
console.log(a, b, c);
// null null null
首先不建议 let resourceId = uniqueNo = unitName = null
这样来写。赋值为 null
这种原始数据类型是可以的,但是如果是引用类型值的话就会有很大的问题。举个例子:
let resourceId = uniqueNo = unitName = []
resourceId.push(1)
console.log('resourceId => ', resourceId)
// 'resourceId => ' Array [ 1 ]
console.log('uniqueNo => ', uniqueNo)
// 'uniqueNo => ' Array [ 1 ]
console.log('unitName => ', unitName)
// 'unitName => ' Array [ 1 ]
另外,我是不喜欢初始化为 null
的,会比较喜欢初始化为 undefined
,因为你设置为 null
的时候,在解构赋值或者期望 props
传递给子组件的时候,并不会被应用成指定默认值。比如说:
var test = { a: null }
function fn({ a = 1 }) {
console.log('log-a =>', a)
}
fn(test)
// 'log-a =>' null
所以我的建议是和 @Undest 的回答一样,直接 let resourceId, uniqueNo, unitName;
这样是我比较认可的。
可以,只要你不觉得变量多起来后不方便理解就没问题。
这样写会比较清晰:
let resourceId = null, uniqueNo = null, unitName = null;
或者如果你只是想初始化,后续变量作为判断条件,那初始化为undefined也可以,不需要赋值默认就是了:
let resourceId,uniqueNo,unitName;
8 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.9k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.9k 阅读
5 回答7.2k 阅读✓ 已解决
可以这样写,这种方法是最简单有效的。你也可以这样写:
let [resourceId, uniqueNo, unitName] = [null, null, null];