大学时没选修编译原理这门课,不知道什么是语法糖,最近看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、什么是语法糖? - 知乎

什么是语法糖(Syntactic sugar)?相关推荐

  1. C# 语法糖(Syntactic sugar)

    定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能 ...

  2. python语法糖是什么_Python语法糖Syntactic Sugar

    语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性 简而言之,语法糖就是程序语言中提供[奇技淫巧]的 ...

  3. 语法糖 Syntactic sugar: 复杂代码的等价简洁替代

    语法糖(Syntactic sugar) 在不改变代码所在位置.语法结构的前提下,实现了运行时的等价代码更简洁流畅,代码更语义自然,可读性高 写着爽,看着爽,就像吃了糖,效率高,错误少 例: 最基本的 ...

  4. Java 中的语法糖 (Syntactic Sugar)

    语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便 ...

  5. 语法糖(Syntax Sugar)Python

    语法糖让程序更加简洁,有更高的可读性 连续比较 1 < x < 10 (x>1 and x<10) 三元表达式(结果一 if  判断条件 else 结果二) 推导表达式 推导表 ...

  6. syntactic sugar - 语法糖 - 糖衣语法

    syntactic sugar - 语法糖 - 糖衣语法 语法糖 (syntactic sugar),亦称为糖衣语法,是英国计算机科学家彼得 - 约翰 - 兰达 (Peter J. Landin) 发 ...

  7. ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖

    作者:Java 技术栈来源:SegmentFault 思否社区 原文作者:danchu原文链接:https://blog.csdn.net/danchu/article/details/5498644 ...

  8. java语法糖效率高吗_打包 Java将持续向“高糖”方向发展,你真的了解Java语法糖吗? _好机友...

    Java语法糖概念 1. 语法糖Syntactic Sugar 糖衣语法,方便开发人员使用,JVM并不识别,会在编译阶段解语法糖,还原为基础语法. 2. com.sun.tools.javac.mai ...

  9. 很傻很天真的问题: 什么是语法糖!

    一直不太理解语法糖的意思,闲来搜索了下原来如此 语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编 ...

  10. C#【汇总篇】语法糖汇总

    文章目录 0.语法糖简介 1.自动属性 2.参数默认值和命名参数 3.类型实例化 4.集合 4.1 初始化List集合的值 4.2 取List中的值 5.隐式类型(var) 6.扩展方法[更换测试实例 ...

最新文章

  1. 58集团技术委员会主席:斗胆谈一谈,我是如何做到年薪百万的!!!
  2. 机器学习入门必读:6种简单实用算法及学习曲线、思维导图
  3. 公益:开放一台Nacos服务端给各位Spring Cloud爱好者
  4. Spring boot验证码前后端验证
  5. C#/.Net操作MongoDBHelper类
  6. js 创建file对象_JS 之创建对象
  7. TypeScript学习笔记(二):基本数据类型及数据转换
  8. 5.录制与回放终端会话.
  9. 【LKM】make 错误:make -C /lib/modules/4.15.0-58-generic/build SUBDIRS=/xxx
  10. 一级域名注册如何申请?需要注意哪些事项?
  11. 大数据处理系统都有哪些?(批处理系统与迭代计算系统)
  12. elasticsearch插件之cerebro的安装
  13. 辛普森复合求积公式matlab,MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等).doc...
  14. win10c 系统语言 英文,Win10英文版系统下中文软件显示为问号的解决方法
  15. 编程中的命名方式和常用命名名称
  16. Ehabs Last Corollary
  17. 【自动控制原理】【计算机控制技术】通俗易懂地理解Z变换
  18. 专访民生银行:CPOS平台如何从线下布局移动支付
  19. Linux 如何给新加的硬盘重新添加分区(纯新手)
  20. jpa、mybatis、hibernate、spring data jpa区别

热门文章

  1. 励志语录(忙碌的同时也要停下来思考人生)
  2. MATLAB-xcorr函数
  3. 80后年轻老板创业心经
  4. 初学者学习插画原画以后就业方向有哪些?和大家聊聊插画原画师就业、薪资等
  5. 如何做好Clickhouse集群的监控覆盖?
  6. VS 2019教程:创建ASP.NET Core Web App
  7. 关于声音的前后左右上下的控制以及单声道立体声的区别
  8. 5G到底什么时候来,以及,它究竟能给我们带来什么?
  9. 远程控制桌面,手机外网远程桌面连接内网的实现过程,详细图文并茂
  10. 诺基亚NBU备份文件名片导出程序 vCard助手