語法糖字面意思是語法+糖(美化)。
其實就是在編譯結果不變的情況下,為了達到某種目的(使代碼簡潔,使語義自然,使更接近面向對象編程等...),改變代碼的書寫方式,使達到目的。
常見的語法糖有:
1. ES6中的 class(更像面向對象編程的語法)
ES6 的class
可以看作是ES5中構造函數的另一種寫法。而且class去檢測類型就是function。
class A {} console.log(typeof A) // "function"
它的絕大部分功能,ES5 都可以做到,新的class
寫法只是讓對象原型的寫法更加清晰、更像面向對象編程的語法而已。
2. react中的jsx語法(使代碼簡潔)。其實是React.createElement(component, props, ...children)的語法糖。
<MyButton name="hello">world</MyButton>
相當於
React.creatElement("MyButton", {name: "hello"}, 'world');