什么是语法糖(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来描述用户界面。
其他例子还有:在 C 语言里用 a[i] 表示 *(a+i),用 a[i][j] 表示 *(*(a+i)+j),由此可见语法糖不是“现代语言”独有,这种写法简洁明了,易于理解。
对于机器语言,任何比他高级的语言都是语法糖,比如汇编语言,高级语言。
对于汇编语言,任何比他高级的语言都是语法糖,比如高级语言。
对于面向过程的语言,面向对象的语言都是语法糖。
参考文献:
1、语法糖_百度百科
2、什么是语法糖? - 知乎
什么是语法糖(Syntactic sugar)?相关推荐
- C# 语法糖(Syntactic sugar)
定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能 ...
- python语法糖是什么_Python语法糖Syntactic Sugar
语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性 简而言之,语法糖就是程序语言中提供[奇技淫巧]的 ...
- 语法糖 Syntactic sugar: 复杂代码的等价简洁替代
语法糖(Syntactic sugar) 在不改变代码所在位置.语法结构的前提下,实现了运行时的等价代码更简洁流畅,代码更语义自然,可读性高 写着爽,看着爽,就像吃了糖,效率高,错误少 例: 最基本的 ...
- Java 中的语法糖 (Syntactic Sugar)
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便 ...
- 语法糖(Syntax Sugar)Python
语法糖让程序更加简洁,有更高的可读性 连续比较 1 < x < 10 (x>1 and x<10) 三元表达式(结果一 if 判断条件 else 结果二) 推导表达式 推导表 ...
- syntactic sugar - 语法糖 - 糖衣语法
syntactic sugar - 语法糖 - 糖衣语法 语法糖 (syntactic sugar),亦称为糖衣语法,是英国计算机科学家彼得 - 约翰 - 兰达 (Peter J. Landin) 发 ...
- ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖
作者:Java 技术栈来源:SegmentFault 思否社区 原文作者:danchu原文链接:https://blog.csdn.net/danchu/article/details/5498644 ...
- java语法糖效率高吗_打包 Java将持续向“高糖”方向发展,你真的了解Java语法糖吗? _好机友...
Java语法糖概念 1. 语法糖Syntactic Sugar 糖衣语法,方便开发人员使用,JVM并不识别,会在编译阶段解语法糖,还原为基础语法. 2. com.sun.tools.javac.mai ...
- 很傻很天真的问题: 什么是语法糖!
一直不太理解语法糖的意思,闲来搜索了下原来如此 语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编 ...
- C#【汇总篇】语法糖汇总
文章目录 0.语法糖简介 1.自动属性 2.参数默认值和命名参数 3.类型实例化 4.集合 4.1 初始化List集合的值 4.2 取List中的值 5.隐式类型(var) 6.扩展方法[更换测试实例 ...
最新文章
- 58集团技术委员会主席:斗胆谈一谈,我是如何做到年薪百万的!!!
- 机器学习入门必读:6种简单实用算法及学习曲线、思维导图
- 公益:开放一台Nacos服务端给各位Spring Cloud爱好者
- Spring boot验证码前后端验证
- C#/.Net操作MongoDBHelper类
- js 创建file对象_JS 之创建对象
- TypeScript学习笔记(二):基本数据类型及数据转换
- 5.录制与回放终端会话.
- 【LKM】make 错误:make -C /lib/modules/4.15.0-58-generic/build SUBDIRS=/xxx
- 一级域名注册如何申请?需要注意哪些事项?
- 大数据处理系统都有哪些?(批处理系统与迭代计算系统)
- elasticsearch插件之cerebro的安装
- 辛普森复合求积公式matlab,MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等).doc...
- win10c 系统语言 英文,Win10英文版系统下中文软件显示为问号的解决方法
- 编程中的命名方式和常用命名名称
- Ehabs Last Corollary
- 【自动控制原理】【计算机控制技术】通俗易懂地理解Z变换
- 专访民生银行:CPOS平台如何从线下布局移动支付
- Linux 如何给新加的硬盘重新添加分区(纯新手)
- jpa、mybatis、hibernate、spring data jpa区别