0
点赞
收藏
分享

微信扫一扫

什么是语法糖(Syntactic sugar)?


大学时没选修编译原理这门课,不知道什么是语法糖,最近看React的官方文档才接触语法糖的概念,简单查了下资料记录下,以下是来自百度百科的解释:

语法糖(Syntactic sugar),也译为糖衣语法,是由英国​​计算机​​科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会

简单理解就是在不改变其功能的情况下,通过改变代码的写法,让代码更具有可读性,更容易理解,就相当于汉语里的成语。

即,用更简练的言语表达较复杂的含义。在得到广泛接受的情况之下,可以提升交流的效率。

例如以下在React中的两种写法,这两种代码的作用是完全相同的:

这种是原始JavaScript的写法

const element = React.createElement(
'span',
{className: 'qc'},
'Hello, world!'
);

 下面这种写法是JSX的写法,也就是简化后的代码,下面这种写法是上面那种语法的语法糖。

const element = (
<span className="qc">
Hello, world!
<span/>
);

 React官方的文档是这样描述的, JSX 仅仅只是​​React.createElement(component, props, ...children)​​ 函数的语法糖

JSX是一种JavaScript的语法扩展,运用于​​React​​​架构中,其格式比较像是模版语言,但事实上完全是在​​JavaScript​​内部实现的。元素是构成React应用的最小单位,JSX就是用来声明React当中的元素,React使用JSX来描述用户界面。

什么是语法糖(Syntactic sugar)?_reactjs

 其他例子还有:在 C 语言里用 a[i] 表示 *(a+i),用 a[i][j] 表示 *(*(a+i)+j),由此可见语法糖不是“现代语言”独有,这种写法简洁明了,易于理解。

对于机器语言,任何比他高级的语言都是语法糖,比如汇编语言,高级语言。

对于汇编语言,任何比他高级的语言都是语法糖,比如高级语言。

对于面向过程的语言,面向对象的语言都是语法糖。

参考文献:

1、​​语法糖_百度百科​​

2、​​什么是语法糖? - 知乎​​ 

举报

相关推荐

0 条评论