当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何在JavaScript中简洁地初始化多个变量为null?

栾和玉
2024-06-08

js定义多个变量并且都初始化为null的简易写法

js中定义三个变量 let resourceId = uniqueNo = unitName = null; 能这样写吗,有其他简单写法吗?

共有4个答案

法风畔
2024-06-08

首先不建议 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; 这样是我比较认可的。

水品
2024-06-08

可以,只要你不觉得变量多起来后不方便理解就没问题。
这样写会比较清晰:

let resourceId = null, uniqueNo = null, unitName = null;

或者如果你只是想初始化,后续变量作为判断条件,那初始化为undefined也可以,不需要赋值默认就是了:

let resourceId,uniqueNo,unitName;
小牛23117
2024-06-08
const makeNull = {    [Symbol.iterator]: function* () {        while (true) {          yield null;        }    }};const [a, b, c] = makeNull;console.log(a, b, c);// null null null
穆景辉
2024-06-08

可以这样写,这种方法是最简单有效的。你也可以这样写:
let [resourceId, uniqueNo, unitName] = [null, null, null];

 类似资料:
  • 因为我是android开发新手,所以我不知道如何在使用lateinit变量之前初始化它。在此之前,我尝试过执行,就像这个github中提到的,但没有成功。所以现在我希望问题出在初始化textInput变量上。

  • 问题内容: 我正在寻找一种声明相同类型和相同值的多个变量的干净有效的方法。现在我有: 但是我正在寻找类似的东西: 这是可以在Java中完成的事情吗?牢记效率。 问题答案: 这应该适用于不可变的对象。对于可变对象没有任何意义,例如: 所有变量将指向同一实例。在这种情况下,你可能需要的是: 或者最好还是使用数组或Collection。

  • 在Java中,可以用null初始化引用变量,例如,字符串变量可以像下面这样初始化:

  • 问题内容: 我有以下代码: 这给了我以下错误: 解析错误:语法错误,在第19行的/home/user/Sites/site/registration/inc/registration.class.inc中出现意外的’(’,期待’)’ 所以,我想我做错了什么…但是如果不那样做怎么办?如果我用常规字符串更改mktime内容,它将起作用。所以,我知道我能做到这一点 的那种 像.. 有人有指针吗? 问题答

  • 问题内容: 在JavaScript中,可以这样声明多个变量: …或像这样: 一种方法比另一种更好/更快吗? 问题答案: 第一种方法更易于维护。每个声明都是一行上的单个语句,因此您可以轻松地添加,删除和重新排列声明。 使用第二种方法时,删除第一个或最后一个声明很烦人,因为它们包含关键字和分号。每次添加新的声明时,都必须将旧行中的分号更改为逗号。

  • 问题内容: 哪种方法检查变量是否已初始化是更好/正确的方法?(假设变量可以容纳任何内容(字符串,整数,对象,函数等)) 要么 要么 问题答案: 该运营商将检查变量真的不确定。 该运营商,不同于其他运营商,不会抛出 的ReferenceError 与未声明的变量使用时例外。 但是,请注意将返回。我们必须小心避免将变量初始化为的错误。为了安全起见,我们可以改用以下方法:

  • 问题内容: 我有一个初始化为的变量: 问题是,在某个时候,我需要重置此变量,以便在更改后可以再次初始化。但是如果我将类设置为可选的话,LLVM在尝试将它设置为时会给我一个错误。如果我只是使用将其重置在代码中的某个位置,它将最终显示为。 有没有一种方法可以使用并允许自己重置? 问题答案: 懒惰是明确的仅一次初始化。您要采用的模型可能只是按需初始化模型: 现在,只要是,它会被初始化并返回。可以通过设置

  • 问题内容: 如何使用类型初始化变量? 因为我有错误 问题答案: 常量声明不能包含函数调用(某些例外,请参见下文),它们必须在编译时进行评估,而函数调用是在运行时进行的。 引用规格:常量: 常数值由符文,整数,浮点数,虚数或字符串文字表示,标识符表示常数,常数表达式,结果为常数的转换或某些内置结果的值函数,例如应用于任何值,或应用于某些表达式,以及应用于常量,以及应用于数字常量的复数。 并引用Spe