创建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个名称
- 变量不能在其变量环境之外直接访问
- 它创建一个对象,并将其指定给环境中的单个名称
- 对象本身可以传递到封闭环境之外
- 任何引用对象的代码都可以观察到对象的更新
- 与第一个
var
,它们将存在于他在其中声明它们的任何函数中。如果他没有将它们放在函数中,它们将在全局范围内。@Ryan:不完全是。使用ES5规范后,情况发生了很大的变化。我们现在有了这样一种称为Lexcial环境的对象,而不是变量和激活对象。因此,他回答了ES5的问题,而不是ES3的问题。他应该指出这一点。词法范围尚未实现;)但是,你是对的。在JS的下一个版本中,您可以使用let
构造来创建词法范围。Firefox是唯一一款“作为扩展”的浏览器;)作为对“变量环境”的澄清,您指的是“函数范围”,因为这是javascript中变量驻留的唯一范围。由于他使用了var
,它们将存在于他在其中声明它们的任何函数中。如果他没有将它们放在函数中,它们将在全局范围内。@Ryan:不完全是。使用ES5规范后,情况发生了很大的变化。我们现在有了这样一种称为Lexcial环境的对象,而不是变量和激活对象。因此,他回答了ES5的问题,而不是ES3的问题。他应该指出这一点。词法范围尚未实现;)但是,你是对的。在JS的下一个版本中,您可以使用let
构造来创建词法范围。Firefox是唯一一款“作为扩展”的浏览器;)和