sunmaobin.github.io icon indicating copy to clipboard operation
sunmaobin.github.io copied to clipboard

JS解惑-语法糖

Open sunmaobin opened this issue 8 years ago • 2 comments

什么是语法糖?其实很简单。

定义

什么是语法糖?

语法糖,英文是:Syntactic Sugar

维基百科的定义是:

In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express.

翻译过来的定义是:

在计算机科学中,语法糖是一种编程语言中的语法,设计语法糖的目的是为了使事情处理起来更加容易阅读或者表达。

更加直白的说法是:语法糖就是某种特性语法的简写形式。

扩展

1、什么是语法盐?

语法盐,英文是:Syntactic Salt

定义:

为避免容易犯的语法错误加上的额外语法限制

2、什么是语法糖精/语法糖浆

语法糖精,英文是:Syntactic Saccharin 语法糖浆,英文是:Syntactic Syrup

定义:

使得程序更加容易的一种语法。

关于这2个的定义,可以参看维基百科:

总结

语法糖并不是某一种特定语言的独有语法,而是所有计算机语言都有的,比如鼻祖类的C语言中就有了数组的语法糖等。

只不过现在在前端JS中,尤其ES6中为了使得程序开发更有效率,更加一致,所以增加了很多语法糖(简单语法)而已。

不要以为这是什么神秘技术,只是一种概念的称呼而已。

更多参考

  1. 维基百科-语法糖
  2. ES6 语法糖之我见

sunmaobin avatar May 26 '17 03:05 sunmaobin

语法糖并不是某一种特定语言的独有语法,而是所有计算机语言都有的

这句话似乎不太对呀,每种语法都有特定的语法糖,不能说某个语法糖是所有语言都有的,只能说每种语言里都有语法糖这个概念。

edte avatar Jul 17 '20 06:07 edte

语法糖并不是某一种特定语言的独有语法,而是所有计算机语言都有的

这句话似乎不太对呀,每种语法都有特定的语法糖,不能说某个语法糖是所有语言都有的,只能说每种语言里都有语法糖这个概念。

我这句话的意思可没有说 “某个语法糖是所有语言都有的” 呀?难道有歧义?我的意思就是说:“所有计算机语言都有语法糖”

sunmaobin avatar Jul 24 '20 08:07 sunmaobin