【问题标题】:Declaring multiple numbers together makes the first one 'undefined' in JavaScript [duplicate]一起声明多个数字会使第一个数字在 JavaScript 中“未定义”[重复]
【发布时间】:2020-08-04 16:31:50
【问题描述】:

当我在 JavaScript 中同时声明多个变量时,第一个变量总是变成“未定义”:

let x, y = 0;
//undefined
typeof x
//"undefined"
typeof y
//"number"

为什么会这样?

似乎唯一的解决方案是在单独的行中声明它们:

let x = 0;
let y = 0;
//number
typeof x
//"number"
typeof y
//"number"

(所有代码都在 Google Chrome 控制台中运行)

【问题讨论】:

  • let x, y = 0 等价于let x; let y = 0;。你需要这样做:let x = 0, y = 0;.
  • 当你说 let x, y = 0; 时,你是在声明 x 变量而不赋值。

标签: javascript


【解决方案1】:

您还需要定义 x 的值

let x=0,y=0; :)

【讨论】:

    【解决方案2】:

    你需要这样做:让 x = 0, y = 0;。 因为 让 x, y = 0 等于让 x ;让 y = 0;.

    【讨论】:

      【解决方案3】:

      Sachin 在他的评论中是对的,但是如果您想分配一大堆变量,并且不想每次都写= 0,您可以先定义变量,然后同时分配它们.

      let x, y, z, a, b, c;
      x = y = z = a = b = c = 0;
      

      【讨论】:

        【解决方案4】:

        赋值运算符具有从左到右的关联性,因此首先最右边的操作数被赋值,然后左边的运算符没有赋值,并且在 javascript 中没有办法知道变量的 type 在编译时因此没有分配值的x 将没有分配给它的类型,因此产生undefined

        更多关于关联here

        【讨论】:

          猜你喜欢
          • 2019-05-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多