大学时没选修编译原理这门课,不知道什么是语法糖,最近看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来描述用户界面。

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

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

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

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

参考文献:

1、语法糖_百度百科

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐