最近我在看ES6的时候有人提到了语法糖。其中说到语法糖其实就是ES6中的一些非破坏性更新。这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些。
看完这样的解释,我还是不太明白到底语法糖是什么?于是我查了百度百科,维基百科等终于弄清楚了它的本质。本文正是基于此简单的说明一下我对语法糖的理解。
下面是来自维基百科的解释:
语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。
看到上面这个解释,我相信你肯定就明白了。还是维基百科解释的清楚。
再看下面列举的例子:
在C语言里用a[i]表示*(a+i),用a[i][j]表示*(*(a+i)+j),由此可见语法糖不是“现代语言”独有,这种写法简洁明了,容易被人理解。
最常见的就是for循环和while循环。以及下面这种:
a += 10; //等价于 a = a + 10;
到这里你就明白了,其实语法糖听起来难,等你弄清楚了一点也不难。
日常的编程中还有很多语法糖的例子。例如:面向过程和面向对象。
input.map(item => item + 1); //等价于 input.map(function (item) { return item + 1; });
除了语法糖只要,还有语法盐,语法糖精等一些概念。至于它们分别代表什么意思,你上维基百科自己查去吧。