Specs 语法糖和语法盐
阅读(5072)语法糖(Syntactic sugar),是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。
语法盐(Syntactic salt),是指在计算机语言中为了降低程式设计师撰写出不良程式码的设计,但其中仍会有潜藏错误存在的可能。语法盐有可能会违背它的初衷,使程式码的可读性降低或浪费程式码的空间占用。
语法糖示例
ES5语法:
function Point(x, y) {
this.x = x;
this.y = y;
}
Point.prototype.toString = function () {
return '(' + this.x + ', ' + this.y + ')';
};
ES6语法:
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
两者的功能完全相同,底层实现一致,但ES6中的定义更加清晰,可读性更高,也适合其他语言程序员理解。ES6中增加了不少这样的语法糖,如arrow function(=>)、spread operator(...)等。
另外一个例子: C中采用 a[i][j] 表示 *(*(a+i)+j),免去了指针的繁琐。
语法盐示例
C#中,switch-case 语句中如果没有goto、return、throw 等跳离语法,需要带有break
,否则会编译错误。但C、C++无此语法盐。
Refer: