gpt4 book ai didi

javascript - 标识符和变量之间的区别(在 JavaScript 中)

转载 作者:行者123 更新时间:2023-12-01 08:55:28 25 4
gpt4 key购买 nike

我一直在看这个query为答案。
使用以下 JavaScript 语法:

var var1 = 1;
var var2 = function(a, b){
return a + b;
};
var var3 = var2(3, 5);
我想知道,是否 var1/ var2/ var3是变量或标识符。
有点混淆 var JavaScript 中的关键字。

最佳答案

标识符和变量之间的区别与名称和人之间的区别相同。

名称识别人。例如,它们还可以识别狗。名字不是人,人名也不是。但是你可以说我是 Amadan(因为说我被 Amadan 这个名字所识别听起来很笨拙)。

以同样的方式:

标识符标识变量。例如,它们还可以识别标签。标识符不是变量,变量标识符也不是。但是你可以说那个变量是var2 (因为说这是由标识符 var2 标识的变量听起来很笨拙)。

I would like to know, whether var1/var2/var3 are variables or identifiers.



阿玛丹是一个人还是一个名字?我想,两者都取决于你对它的严格程度。对于变量和标识符,答案又是完全平行的。

编辑:

Can I say, Name and Value, in general?



准确地说,“值”是第三个概念,变量的“内容”是相关的第四个概念。

也许一个变量的更好的类比是储物柜:它们有标识符(写在盒子上的数字)和内容(无论你放在里面)。变量不一定是值的内存位置,因为变量可以包含引用,而不是对象本身(有点像将一 block 房地产的地址放入储物柜,而不是试图塞满整个房子进箱子)。所以,在这个延伸的例子中,房子就是值(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

声明了四个变量( abaabb )和四个标识符来命名它们(还有 abaabb );它还提到了许多值( 1234 ,数组 [2, 3, 4] )。 aaa每个都包含原始值 1 的不同副本. b包含对值 [2, 3, 4] 的引用(不是值 [2, 3, 4] 本身!),它又包含值 2 , 34 . bb包含另一个副本...引用!因此,如果您更改 b 中包含的值, bb 中的值也会自动改变:
b.push(5);
console.log(b);
// => [2, 3, 4, 5]
console.log(bb);
// => [2, 3, 4, 5]

函数也是值。
function hello(name) {
console.log("Hello, " + name);
}

(几乎但不是 100%)与
var hello = function(name) {
console.log("Hello, " + name);
}

它定义了一个标识符为 hello 的变量,其内容是对函数的引用。函数本身就是一个值。

关于javascript - 标识符和变量之间的区别(在 JavaScript 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28185877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com