什么时候在javascript和“ =”运算符中使用“:”(冒号)运算符?

Dav*_*345 6 javascript arrays object operators key-value

在过去的一个小时里,我尝试在任何地方上网查找,但似乎无法弄清楚何时在JavaScript中使用冒号运算符:vs。=到目前为止,据我所知,似乎在定义对象属性时使用了冒号:

小智 5

您正确说明的冒号(:) 运算符用于定义对象属性:

var object = {
  property:value
}
Run Code Online (Sandbox Code Playgroud)

equals(=) 运算符用于为某物、变量、数组等赋值。

如果您只将对象定义为:

var object = {}
Run Code Online (Sandbox Code Playgroud)

您可以像这样为它分配属性:

object.property = value;
Run Code Online (Sandbox Code Playgroud)


Clo*_*omp 5

JavaScript语言是Brandon Eich使用该=符号作为赋值运算符构建的。早在1995年,大多数编程语言(如BasicTurbo PascalDelphiCC ++等)都使用相同的方法为变量赋值。

:由于道格拉斯·克罗克福德Douglas Crockford)在定义JSON规范方面的工作,使用冒号在JavaScript中快速创建新对象变得很流行。JSON比XML更易于编写且更紧凑。的JSON.parse()来方法消除了需要建立一个客户端的XML解析器。结果,JSON的编码速度也比XML快。因此,JSON作为服务器和客户端浏览器之间的数据传输格式而变得流行。

如果您查看http://www.json.org,可以看到如何使用{"key1": value1, "key2": value2}对符号快速写入新对象。冒号的使用:只是写长期对象属性的简写形式,它使用等号=作为运算符。

Longhand JavaScript示例:(73个字符)

let myObject = new Object();
myObject.a = 1;
myObject.b = 2;
myObject.c = 3;
Run Code Online (Sandbox Code Playgroud)

速记JSON示例:(42个字符)

let myObject = {
  "a": 1,
  "b": 2,
  "c": 3
};
Run Code Online (Sandbox Code Playgroud)

缩小示例:

let myObject=new Object();myObject.a=1;myObject.b=2;myObject.c=3; (65 characters)
let myObject={'a':1,'b':2,'c':3}; (33 characters with quotes, 27 characters without)
Run Code Online (Sandbox Code Playgroud)

您可以在代码中使用等号=或冒号:。没有首选规则,也没有最佳实践。它们可以在同一行代码中一起使用。

let myObject = {a:1, b:2, c:3};
Run Code Online (Sandbox Code Playgroud)

Wikipedia通过其JSON页面添加了有关JSON的更多上下文。