js之语法糖

js之语法糖语法糖 Syntacticsug 也译为糖衣语法 是由英国计算机科学家彼得 约翰 兰达 PeterJ Landin 发明的一个术语 指计算机语言中添加的某种语法 这种语法对语言的功能并没有影响 但是更方便程序员使用 通常来说使用语法糖能够增加程序的可读性 从而减少程序代码出错的机会 举个例子 在 C 语言里用 a i 表示 a i 用 a i j 表示 a i j 由此可见

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

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

实际上从面向过程到面向对象也是一种语法糖,C语言可以通过它的指针、类型转换,结构体实现面向对象的编程风格,但是C++更进一步的推广了这种风格,更加易用,不过到了C#把OO的风格发挥得淋漓尽致。OO的编程风格对于面向过程来说是不是一种语法糖呢?如果生硬地照此理解,只有计算机硬件指令才不算语法糖,而其他一切利用编译器、汇编器将代码抽象,和自然语言更相近的手段都算语法糖。

很多编程思想,编程理论层出不穷,当然,对于学习来说我们是要抓住技术的核心,但对于工程来说如何提高工程质量,如何提高工程效率也是我们要关注的,既然这些语法糖能辅助我们以更好的方式编写代码为什么要“抵制“呢?

语法糖和其他编程思想一样重要,什么duck type,人本接口,最小接口,约定优于配置,广义来讲都是一些思想上的“语法糖“。

不过也并不是没有反对的声音,这其中就有图灵奖的第一个获得者: Alan Perlis。.net从2.0到3.0到3.5底层CLR并没有做更新,没有添加任何新的IL指令,所以C#从2.0到3.0中所有的特性都是语法糖,就算从1.0到2.0,也只有一个泛型不是语法糖,其余的新特性也都是如此,但是每一次C#发布新特性的时候我们不得不为之而鼓舞,为之而喝彩。新的语法可以酿造更好的编程风格,一些难以实现的方面也轻而易举了。

需要声明的是“语法糖”这个词绝非贬义词,它可以给我们带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

很多编程思想,编程理论层出不穷,当然,对于学习来说我们是要抓住技术的核心,但对于工程来说如何提高工程质量,如何提高工程效率也是我们要关注的,既然这些语法糖能辅助我们以更好的方式编写代码为什么要“抵制“呢?

语法糖和其他编程思想一样重要,什么duck type,人本接口,最小接口,约定优于配置,广义来讲都是一些思想上的“语法糖“。

不过也并不是没有反对的声音,这其中就有图灵奖的第一个获得者: Alan Perlis。.net从2.0到3.0到3.5底层CLR并没有做更新,没有添加任何新的IL指令,所以C#从2.0到3.0中所有的特性都是语法糖,就算从1.0到2.0,也只有一个泛型不是语法糖,其余的新特性也都是如此,但是每一次C#发布新特性的时候我们不得不为之而鼓舞,为之而喝彩。新的语法可以酿造更好的编程风格,一些难以实现的方面也轻而易举了。

需要声明的是“语法糖”这个词绝非贬义词,它可以给我们带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176603.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:31
下一篇 2026年3月26日 下午9:31


相关推荐

  • pycharm关联git

    pycharm关联git1 打开 pycharm gt File gt Settings 点击 Test 后 出现弹框 5 点击 OK 此时 Pycharm 已关联 git 路径成功 2 pycharm 关联 gitlab 仓库地址依次点击下图中的 1 gt 2 gt 3 标记处 会出现 2 中的弹框 2 填写如下 在 URL 处 填写 gitlab 拉取代码的地址 点击 Test 后 会出现一个弹框 需要你填写用户名和密码 千万不要填错了欧 完成后就可以填入 Directory 处的地址 你拉取的代码要放到哪个文件

    2026年3月27日
    3
  • SSL及其加密通信过程「建议收藏」

    SSL及其加密通信过程「建议收藏」SSL协议和加密过程一、什么是SSL二、HTTPS和SSL三、SSL加密方式3.1对称加密与非对称加密3.1.1对称加密3.1.2非对称加密3.2具体的加密过程一、什么是SSLSSL英文全称SecureSocketLayer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密。它主要是分为两层:SSL记录协议:为高层协议提供安全封装、压缩、加密等…

    2022年6月3日
    46
  • cad制图常用命令_cad制图注意事项及细节

    cad制图常用命令_cad制图注意事项及细节AutoCAD常见命令总结1.选项:OP2.缩放:z3.鼠标操作:滚动中键缩放,按住中键移动4.选择:实线,虚线。5.直线:线性(标记),对象捕捉。6.尺寸线:几何尺寸,定位尺寸。从左,上标记。7.标注:规范标注(尺寸界限与几何线之间不能重合),快速标注(按空格),连续标注(需提前标好一个)。8.直线定位法。9.画斜线公式:@长度……

    2025年11月27日
    10
  • matlab求解高阶常微分方程_状态依赖时滞微分方程的动力学研究

    matlab求解高阶常微分方程_状态依赖时滞微分方程的动力学研究**前言:**大学期间只学习过《常微分方程》,没想到有些学校竟然还学《时滞微分方程》,于是找到一本由内藤敏机(日本)等著,马万彪等译的《时滞微分方程——泛函数微分方程引论》(有需要的可以私聊,CSDN貌似上传不了书籍,说侵权emmm),看着头秃,不过受到不少启发,尤其是对Logistic方程的改进,真真是长见识了。没找到有人用欧拉法解一阶时滞微分方程的,于是一不做二不休便用MATLAB实现了一下下…

    2022年10月1日
    7
  • 最优二叉树——哈夫曼树

    最优二叉树——哈夫曼树最优二叉树 哈夫曼树标签 structnull 算法 inputpathtre 04 2818 0 人阅读评论 11 收藏举报分类 学习专区 140 作者同类文章 X 数据结构 1 作者同类文章 X 版权声明 本文为博主原创文章 未经博

    2026年3月18日
    2
  • stm32f1时钟分析

    stm32f1时钟分析

    2021年8月18日
    80

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号