怀英漫谈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 条评论
登录 后参与评论

相关文章

来自专栏海天一树

小朋友学C++(2):面向过程与面向对象

先用C++编写一个加法程序 #include <iostream> using namespace std; int add(int a, int b) { ...

3409
来自专栏我是攻城师

偏执却管用的10条Java编程技巧

3447
来自专栏desperate633

LeetCode 121. Best Time to Buy and Sell Stock题目Solution

假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。 样例 给出一...

743
来自专栏武培轩的专栏

Leetcode#657. Judge Route Circle(判断路线成圈)

初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。

841
来自专栏desperate633

[编程题] 调整队形代码

在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1)。其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示。小朋友们都很顽...

822
来自专栏数据结构与算法

HDU3440 House Man

题意:有n栋房子,给出每栋房子的高度和开始时的相对位置,可以移动一些房子,但不能改变这些房子的相对位置,现在从最矮的房子开始,每次跳至比它高的第一栋房子, 而且...

2826
来自专栏C语言及其他语言

【优质题解】问题 1716: 算法10-6~10-8:快速排序

1):先选取一个元素作为枢纽,把比枢纽小的元素置于枢纽前,比枢纽大的元素置于枢纽后,此时枢纽前的元素都比它小,其后面的元素都比它大,然后再按以上方法递归处理枢纽...

1033
来自专栏开源优测

Python3插入排序

Python3插入排序 前言 为什么要开始写Python3算法系列呢? 一是很长很长时间没专门练习练习这种基本功 二是想把这个系列以基本代码的方式给写出来,提...

2616
来自专栏IT 指南者专栏

Java 数据结构与算法系列之冒泡排序

相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 ...

1476
来自专栏蜉蝣禅修之道

Apriori算法的Python实现

2584

扫码关注云+社区

领取腾讯云代金券