sunmaobin / sunmaobin.github.io

blog
https://github.com/sunmaobin/sunmaobin.github.io
174 stars 11 forks source link

JS解惑-语法糖 #11

Open sunmaobin opened 7 years ago

sunmaobin commented 7 years ago

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

定义

什么是语法糖?

语法糖,英文是: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 语法糖之我见
edte commented 4 years ago

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

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

sunmaobin commented 4 years ago

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

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

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