ove*_*nge 2 javascript variables identifier
我一直在查看这个查询的答案.
使用以下javascript语法:
var var1 = 1;
var var2 = function(a, b){
return a + b;
};
var var3 = var2(3, 5);
Run Code Online (Sandbox Code Playgroud)
我想知道,是否var1/ var2/ var3是变量或标识符.在javascript中
与var关键字有点混淆.
标识符和变量之间的区别与名称和人员之间的区别相同.
姓名识别人.例如,他们也可以识别狗.名字不是人,也不是人名.但是你可以说我是Amadan(因为我说Amadan这个名字听起来很笨拙).
以同样的方式:
标识符标识变量.例如,他们还可以识别标签.标识符不是变量,也不是变量标识符.但你可以说那个变量是var2(因为说这是由标识符识别的变量var2听起来很笨拙).
我想知道,是否
var1/var2/var3是变量或标识符.
Amadan是个人还是名字?我想,两者都取决于你对它的看法.对于变量和标识符,答案再次完全平行.
编辑:
我能说,
Name而且Value,一般情况下?
确切地说,"价值"是第三个概念,变量的"内容"是相关的第四个概念.
对变量来说,更好的类比可能是更衣箱:它们有标识符(写在盒子上的数字)和内容(无论你放在哪里).变量不一定是值的内存位置,因为变量可以包含引用,而不是对象本身(有点像将一块不动产的地址放入一个锁定器,而不是试图填充一个整个房子进入盒子).所以,在这个拉伸的例子中,房子是价值; 储物柜是变量; 在#284写在更衣室是标识符; 并且带有"102 Nowhere Lane,Nowhereville"的纸张是对值的引用,也是变量的内容.如果值很小且足够简单(在编程术语中,"原始"),您可以将值本身填充到变量中,
例如:
var a = 1; // assign a value
var b = [2, 3, 4]; // assign a reference
var aa = a; // copy the contents
var bb = b; // copy the contents
Run Code Online (Sandbox Code Playgroud)
声明四个变量(a,b,aa,bb),以及四个标识符他们的名字(也a,b,aa和bb); 它也提到许多值(1,2,3,4,阵列[2, 3, 4]).a并且aa每个包含原始值的不同副本1.b包含对值的引用[2, 3, 4](不是值[2, 3, 4]本身!),它反过来包含值2,3和4.bb包含...参考的另一个副本!因此,如果更改其中包含b的值,则bb自动更改的值也会更改:
b.push(5);
console.log(b);
// => [2, 3, 4, 5]
console.log(bb);
// => [2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
功能也是价值.
function hello(name) {
console.log("Hello, " + name);
}
Run Code Online (Sandbox Code Playgroud)
是(几乎但不是100%)完全相同
var hello = function(name) {
console.log("Hello, " + name);
}
Run Code Online (Sandbox Code Playgroud)
它定义了一个标识符为的变量hello,其内容是对函数的引用.函数本身就是一个值.