Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建javascript变量的最佳方法_Javascript_Variables - Fatal编程技术网

创建javascript变量的最佳方法

创建javascript变量的最佳方法,javascript,variables,Javascript,Variables,什么是最好的 创建如下变量: var one = 1; var two = 2; var three = 3; var myStuff = {} myStuff.one = 1; myStuff.two = 2; myStuff.three = 3; 或者像这样: var one = 1; var two = 2; var three = 3; var myStuff = {} myStuff.one = 1; myStuff.two = 2; myStuff.three = 3; 我已

什么是最好的

创建如下变量:

var one = 1;
var two = 2;
var three = 3;
var myStuff = {}
myStuff.one = 1;
myStuff.two = 2;
myStuff.three = 3;
或者像这样:

var one = 1;
var two = 2;
var three = 3;
var myStuff = {}
myStuff.one = 1;
myStuff.two = 2;
myStuff.three = 3;

我已经看到了这两种方式,不明白主要的区别是什么。有人能帮我澄清一下吗。

主要区别在于第一种方法给出了三个独立的变量,分别命名为“一”、“二”和“三”。它们之间没有任何联系,也没有任何联系。第二种方法将所有变量放入一个名为“myStuff”的数组中


与第一种方法一样,对于简单的情况,通常需要将它们分开。如果出于某种原因需要将它们绑定在一起,例如将变量集传递给函数,那么数组方法会更好

主要区别在于第一种方法提供了三个独立的变量,分别命名为“一”、“二”和“三”。它们之间没有任何联系,也没有任何联系。第二种方法将所有变量放入一个名为“myStuff”的数组中

var one = 1;
var two = 2;
var three = 3;
与第一种方法一样,对于简单的情况,通常需要将它们分开。如果出于某种原因需要将它们绑定在一起,例如将变量集传递给函数,那么数组方法会更好

var one = 1;
var two = 2;
var three = 3;
使用三个标识符创建三个变量

var myStuff = {}
myStuff.one = 1;
myStuff.two = 2;
myStuff.three = 3;
创建包含三个成员的单个变量(myStuff)。其优点是命名空间分离,并且能够作为一个变量传递/复制/删除整个变量

使用三个标识符创建三个变量

var myStuff = {}
myStuff.one = 1;
myStuff.two = 2;
myStuff.three = 3;
创建包含三个成员的单个变量(myStuff)。优点是名称空间分离,并且能够将整个变量作为一个整体传递/复制/删除。

使用第一个

  • 它向变量环境添加了3个名称
  • 变量不能在其变量环境之外直接访问
第二个

  • 它创建一个对象,并将其指定给环境中的单个名称
  • 对象本身可以传递到封闭环境之外
  • 任何引用对象的代码都可以观察到对象的更新
    • 与第一个

      • 它向变量环境添加了3个名称
      • 变量不能在其变量环境之外直接访问
      第二个

      • 它创建一个对象,并将其指定给环境中的单个名称
      • 对象本身可以传递到封闭环境之外
      • 任何引用对象的代码都可以观察到对象的更新

      不要问什么是最好的。相反,要问:以这样或那样的方式做有什么好处?他们做完全不同的事情?不要问什么是最好的。相反,要问:这样做有什么好处?它们做的事情完全不同?它不会将变量放入数组,而是生成对象myStuff的三个属性。它不会将变量放入数组,而是生成对象myStuff的三个属性。作为对“变量环境”的澄清,您的意思是“函数范围”,因为这是javascript中变量驻留的唯一范围。由于他使用了
      var
      ,它们将存在于他在其中声明它们的任何函数中。如果他没有将它们放在函数中,它们将在全局范围内。@Ryan:不完全是。使用ES5规范后,情况发生了很大的变化。我们现在有了这样一种称为Lexcial环境的对象,而不是变量和激活对象。因此,他回答了ES5的问题,而不是ES3的问题。他应该指出这一点。词法范围尚未实现;)但是,你是对的。在JS的下一个版本中,您可以使用
      let
      构造来创建词法范围。Firefox是唯一一款“作为扩展”的浏览器;)作为对“变量环境”的澄清,您指的是“函数范围”,因为这是javascript中变量驻留的唯一范围。由于他使用了
      var
      ,它们将存在于他在其中声明它们的任何函数中。如果他没有将它们放在函数中,它们将在全局范围内。@Ryan:不完全是。使用ES5规范后,情况发生了很大的变化。我们现在有了这样一种称为Lexcial环境的对象,而不是变量和激活对象。因此,他回答了ES5的问题,而不是ES3的问题。他应该指出这一点。词法范围尚未实现;)但是,你是对的。在JS的下一个版本中,您可以使用
      let
      构造来创建词法范围。Firefox是唯一一款“作为扩展”的浏览器;)和