怀英漫谈2-JS语法初涉

今天碰了一下JS的语法,想与你聊聊这个。这篇文章适合前端设计师,不过在文末,我也为你准备了一些感悟,有兴趣的不妨跳到最后一看。

总体来看,JS的语法和Java的比较像,三类十一符句,三大类是:操作、判断、循环。操作分为:算术、关系、逻辑、条件、逗号运算符。判断分为:if、switch语句。循环分为:while、do-while、for、for/in语句。共十一符句。

在看完三类十一符句之后,除了算数运算符的“前++”、“后++”,比较运算符的“全等===”,for/in语句,刷新了一波认知之外,其它的都可以套用Java中的那一套。

前++, 后++

所谓的“前++”,也就是值本身+1, 返回的是新值。“后++”,也是值本身+1, 但返回的是旧值。这与我之前的认知并不同。我之前认为“前++”是先加1,然后再做算数运算。“后++”是先做算数运算,然后再加1。细细体会这两种解释,其实意思都一样,不过呢,前者不光光说了值的状态(值本身),也说了运算状态(返回的是……)。而后者将这两种状态杂糅到了一起。在做具体分析时候需要将这两种状态分离开来,然后再进行判断,这样一来效率反而较第一种降低了不少。

全等===

这个符号我是第一次见,在Java的开发中并未见过。在JS中,它代表着全等,不光光要求数值相等,数据类型要完全相等。这个功能有点儿像Java中的instanceof与==的结合。

for/in

for/in我以前是知道这个名字的,不过在我的印象中,我把它与Java中的增强for循环联系到了一块,都是在for的括号里做文章,不再传统的(var i=0; i<?; i++)这样子了,而是可以将集合中的每一个元素提取出来,供每一次的循环使用。并且不需要在使用的时候再去考虑循环次数这样的东西。从这个角度来说,它对集合遍历对象的效率要高于传统for循环。

感悟

JS真的是集成了顶级语言的语法,因为几年前学C的时候,发现C的语法也基本上是三类十一符句。这应该不是巧合,而是编程领域形成的共识。三类十一符句是最经典的编程语法,它会逐渐变成这一领域的基础设施,对我来说,精通其中一门语言的三类十一符句后,再去学别的语法,速度上会很快。对新的编程语言来说,这必将是以后新出的编程语言语法的一部分。

清单

  1. JS语法与Java类似,都是三类十一符句。
  2. JS中 特有“全等===”
  3. JS中的for/in,概念上与Java中的foreach相同。

原文发布于微信公众号 - 怀英的自我修炼(hydzwxl)

原文发表时间:2018-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员与猫

使用抽象类和接口的优解

1. 前言 笔者相信,每个使用面向对象语言的开发者自编码以来,肯定便琢磨过抽象类(Abstract)和接口(Interface)的区别。可能一些人已经找到了适...

2015
来自专栏web编程技术分享

你可曾见过如此简单粗暴的JavaScript解说 -- js脚本运行机制

2656
来自专栏数据派THU

【数据蒋堂】索引的本质是排序

来源:润乾软件 作者:蒋步星 本文长度为2600字,建议阅读5分钟 本文为你分析索引清理背后的技术原理。 索引是经常用到的技术,但有些程序员对索引的原理了解不深...

1838
来自专栏诸葛青云的专栏

C语言最难啃的三块硬骨头

指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才能装东西,而且因为是个变量可以中间赋值,这么一倒腾...

922
来自专栏数据和云

性能优化:认识B*Tree 索引分裂(二)

黄玮(Fuyuncat) 黄玮(Fuyuncat),资深 Oracle DBA,从事Oracle数据库管理、维护与开发工作十余年,有丰富的大型数据库设计、开发...

2805
来自专栏Java呓语

装饰者模式(动态组合)

如果您是第一次阅读我的设计模式系列文章,建议先阅读设计模式开篇,希望能得到您宝贵的建议。

703
来自专栏听雨堂

数据库范式

关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五...

1736
来自专栏Android开发实战

设计模式-访问者模式

访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都拥有一个 accept 方法用来接受访问者对象的访问。访问者是一个...

913
来自专栏编程

知道这几点你就学会了Python!

由于Python目前在各个领域都比较火,尤其是人工智能和量化金融方面的应用,更让人趋之若鹜,还不会Python的你是不是落伍了呢。下面就是我的不装逼教你学Pyt...

1945
来自专栏猿人谷

C++命名规则

如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。 活跃在生物学、化学、军队、监狱...

2006

扫码关注云+社区