javascript为未定义的变量赋值

javascript为未定义的变量赋值,javascript,nashorn,Javascript,Nashorn,我正在寻找一种方法,可以在javascript中为未定义的数字赋值。通常我们这样写 var a = {};a.b = {};a.b.c = 'hello world'; 如果有任何解决方案使这样的代码成为可能 var a={}; a.b.c='hello world'; 你回答了自己的问题。 有没有办法给未定义的变量赋值为什么? 快速查看undefined的属性会告诉您undefined的属性writeable设置为false。所以,简单地说,你不能 即使可以,编译器如何知道在您的情况下什么

我正在寻找一种方法,可以在javascript中为未定义的数字赋值。通常我们这样写

var a = {};a.b = {};a.b.c = 'hello world';
如果有任何解决方案使这样的代码成为可能

var a={}; a.b.c='hello world';

你回答了自己的问题。
有没有办法给未定义的变量赋值为什么
快速查看
undefined
的属性会告诉您
undefined
的属性
writeable
设置为
false
。所以,简单地说,你不能
即使可以,编译器如何知道在您的情况下什么是
b
,除非您指定它

你回答了自己的问题。
有没有办法给未定义的变量赋值为什么
快速查看
undefined
的属性会告诉您
undefined
的属性
writeable
设置为
false
。所以,简单地说,你不能
即使可以,编译器如何知道在您的情况下什么是
b
,除非您指定它

据我所知,没有。在您尝试分配a.b.c值之前,需要先分配a.b

实现所需结果的最佳方法是使用Javascript对象文字

let a = {
  b: = {
    c: 'hello World'
    }
 };
这更容易阅读,而且更像是创建JS对象的标准方法。 将所有这些放在一行上并不是一种很好的编码风格。添加一些新行使其更易于阅读,也更易于使用断点进行调试

以下是一些要查看的链接:

据我所知,没有。在您尝试分配a.b.c值之前,需要先分配a.b

实现所需结果的最佳方法是使用Javascript对象文字

let a = {
  b: = {
    c: 'hello World'
    }
 };
这更容易阅读,而且更像是创建JS对象的标准方法。 将所有这些放在一行上并不是一种很好的编码风格。添加一些新行使其更易于阅读,也更易于使用断点进行调试

以下是一些要查看的链接:

不完全是您所要求的,但是您可以创建一个自定义对象,可以像这样使用

function A(){
    this.b = {};
}

var a = new A();
a.b.c = "Hello World";
这并不完全符合您的要求,但您可以创建一个可以像这样使用的自定义对象

function A(){
    this.b = {};
}

var a = new A();
a.b.c = "Hello World";

vara={b:{c:'helloworld'}}
不会剪切它,我猜JS怎么知道
b
是什么类型的结构呢?你不能让a;a、 b=1正因为如此。很难说您希望实现什么,但您可以将键和值映射到一个
映射
并遍历它们,这样您就保留了操作顺序。
var a={b:{c:{hello world'}
不会切断它,我猜JS怎么知道
b
是什么类型的结构呢?你不能让a;a、 b=1正因为如此。很难说您希望实现什么,但您可以将键和值映射到
映射
并对其进行迭代,这样您就保留了操作顺序。我认为OP不想更改
未定义
的值。看起来措辞很糟糕,但我得到的是OP想要像
var a={};a、 b.c='hello world'
和JS以某种方式理解
a.b
也是一个对象,而不必指定它。我认为OP想要理解“为什么”它不能完成,因为基于这个问题,它不能在JS中完成。我想这不是一个糟糕的措辞,对于刚接触JS和未定义的人来说,这是一个有效的问题。我选择将其称为“糟糕的措辞”,因为它与更改
未定义的值无关。对我们来说,这意味着做一些类似于
undefined=“fred”
的事情,这样您就得到了
var a;控制台日志(a)//弗雷德
(好老兄允许…)。操作它并不意味着在每个实例中重新定义
未定义的
,而只是在这个实例中,您可以
a.b.c=“hello world”
。OP和我们对
为未定义的
赋值的理解存在冲突。我认为OP不想更改
未定义的
的值。看起来措辞很糟糕,但我得到的是OP想要像
var a={};a、 b.c='hello world'
和JS以某种方式理解
a.b
也是一个对象,而不必指定它。我认为OP想要理解“为什么”它不能完成,因为基于这个问题,它不能在JS中完成。我想这不是一个糟糕的措辞,对于刚接触JS和未定义的人来说,这是一个有效的问题。我选择将其称为“糟糕的措辞”,因为它与更改
未定义的值无关。对我们来说,这意味着做一些类似于
undefined=“fred”
的事情,这样您就得到了
var a;控制台日志(a)//弗雷德
(好老兄允许…)。操作它并不意味着在每个实例中重新定义
未定义的
,而只是在这个实例中,您可以
a.b.c=“hello world”
。OP和我们对
为未定义的
赋值这一概念的理解存在冲突。您是否缺少这个关键字“this.b={};”?您是否缺少这个关键字“this.b={};”?