Javascript中的语法糖是什么?

Javascript中的语法糖是什么?,javascript,Javascript,我看到很多帖子说类只是语法糖,或者问类在JavaScriptES6中是否是语法糖 但是我很难理解语法糖的含义(我确实理解了使事情易于阅读或理解的字面意思) 我的问题是类在Javascript中是如何成为语法糖的 比如这个问题 比如这个例子有什么关系 class Thing { //... classy stuff } vs 在上面的类中不应该有某种方法(doStuff)来进行相等的比较吗?是的,在提供的示例中,类中应该有该方法 句法上的糖分意味着语言的新特性并不是真正的新特性。相反,对于

我看到很多帖子说类只是语法糖,或者问类在JavaScriptES6中是否是语法糖

但是我很难理解语法糖的含义(我确实理解了使事情易于阅读或理解的字面意思)

我的问题是类在Javascript中是如何成为语法糖的

比如这个问题

比如这个例子有什么关系

class Thing {
   //... classy stuff
}
vs


在上面的类中不应该有某种方法(doStuff)来进行相等的比较吗?

是的,在提供的示例中,类中应该有该方法


句法上的糖分意味着语言的新特性并不是真正的新特性。相反,对于现有的东西,它们是一种更好的语法/你可以通过在旧版本中编写不同的东西来做完全相同的事情。因此,有像Babel这样的Transpiler可以将新语法转换为旧语法。

在javascript类中,我们使用术语语法糖,因为当您编写类时,{}解释器实际上会根据良好的旧原型生成javascript代码

因此,添加“类”对开发人员来说不过是一种放松,可以避免旧的原型模式,并使来自面向对象背景的人更容易与javascripts功能性协作


在您的示例中,比较是不正确的,因为缺少一个函数,但关键是在最终类中,在幕后使用旧的原型

语法糖是抽象语法(简写、简化、易于理解、公开必要的内容)

任何被简化的东西都是一种语法糖

比如说

可以考虑使用缩写形式,如“”或“没有” 句法糖

让a=b+c可以有语法上的糖分,如让a=b.Add(c)

-

在计算机科学中,语法糖是程序中的语法 使事物更易于阅读或表达的语言。 它使语言更适合人类使用:事物可以表达 更清晰、更简洁,或者以一些人可能会选择的另一种风格 喜欢

有一个很好的例子

数组引用是由两个参数组成的过程:数组和下标向量,可以表示为
get\u数组(数组,向量(i,j))

相反,许多语言提供了类似
Array[i,j]

类似地,数组元素更新是一个包含三个参数的过程


类似于
set\u数组(array,vector(i,j),value)
,但是许多语言都提供了
array[i,j]=value
这样的语法,它一定被省略了/忘记了。是的,“classy stuff”部分会有一个
doStuff(){}
声明,你真的只是想让我们解释其他人的堆栈溢出问题吗?你为什么不就原来的问题发表评论,然后问他们他们的意思呢?我看到很多问题,试着一次问一个。简短回答:
被称为语法糖,正如它在引入之前一样,到处都有
函数
,用于声明可以实例化的
类构造+语法糖的定义对于几乎每种语言都是相同的,对于javascript阅读来说不会有所不同:
var Thing = function() {
  // ... setup stuff
};

Thing.prototype.doStuff = function() {};