微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

温习Javascript基础语法之词法结构

前面的话

  javascript是一门简单的语言,也是一门复杂的语言。说它简单,是因为学会使用它只需片刻功夫;而说它复杂,是因为要真正掌握它则需要数年时间。实际上,前端工程师很大程度上就是指javascript工程师。前端入门容易精通难,说的是前端,更指的是javascript。本文是javascript基础语法的第一篇——词法结构

与java关系

  关于javascript有这样一个说法,java和javascript的关系是雷锋和雷锋塔的关系。那到底有没有关系呢

  javascript最开始的名字是LiveScript,后来选择javascript作为其正式名称的原因,大概是想让它听起来有系出名门的感觉。除了语法看起来和java类似之外,javascript和java是完全不同的两种编程语言

  程序设计语言分为解释型和编译型两大类。java或C++等语言需要一个编译器。编译器是一种程序,能够把用java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件。解释型程序设计语言不需要编译器——它们仅需要解释器,浏览器中的javascript解释器将直接读入源代码并执行

  java在理论上几乎可以部署在任何环境,但javascript却倾向于只应用在web浏览器。而且,在JavaScript语言中,函数是一种独立的数据类型,采用基于原型对象(prototype)的继承链,JavaScript语法要比Java自由得多

  基本上,JavaScript这个名字的原意是“很像Java的脚本语言”

定义

  javascript是一门动态的、弱类型的解释型编程语言,非常适合面向对象和函数式的编程风格。javascript的语法源自java,它的一等函数来自scheme,它的基于原型的继承来自self

  javascript用来增强页面动态效果,实现页面用户间的实时、动态交互

  javascript由三部分组成:ECMAScript、DOM和BOM

  [1]ECMAScript由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)

  [2]DOM(Document Object Model)文档对象模型,提供访问和操作网页内容方法和接口

  [3]BOM(browser Object Model)浏览器对象模型,提供与浏览器交互的方法和接口

大小写敏感

  关于javascript这门语言,再怎么强调都不为过的特性是大小写敏感。javascript中的关键字、变量、函数名和所有的标识符都必须采取一致的大小写形式。

//'online'、'Online'、'OnLine'、'ONLINE'是四个不同的变量名

  [注意]HTML并不区分大小写

保留字(ReservedWord)

  和其他任何编程语言一样,javascript保留了一些标识符为自己所用。这些保留字不能用做普通的标识符。由于好多参考书的误导,貌似保留字和关键字是分开的,其实并不是,关键字只是保留字的一部分。保留字包括关键字、未来保留字、空字面量和布尔值字面量

保留字 ReservedWord ::

Keyword FutureReservedWord NullLiteral BooleanLiteral

关键字

break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw delete in try

未来保留字

  下列词被用作建议扩展关键字,因此保留,以便未来可能采用这些扩展

class enum extends super const export import

ECMAScript3版本

  以上是ECMAScript5的保留字,但在ECMAScript3版本中的保留字并不一样,若希望代码能在基于ECMAScript3实现的解释器上运行的话,应该避免使用以下保留字作为标识符

abstract boolean byte char class constdouble enum export extends final float goto implements import int interfacelong native package private protected public short static super synchronized throw transient volatile

预定义变量和函数

  此外,javascript预定义了很多全局变量函数,应该避免把它们的名字用做标识符名

arguments Array Boolean Date decodeURI decodeURIComponent encodeURIencodeURIComponent Error eval EvalError Function Infinity isFinite isNaN JSON Math NaN Number Object parseFloat parseInt RangeError ReferenceError RegExp String SyntaxError TypeError undefined URIError

注释(Comment)

  不是所有语句都需要javascript解释器去解释并执行。有时需要在脚本中写一些仅供自己参考或提醒自己的信息,并希望javascript解释器能直接忽略掉这些信息,这类信息就是注释

 注释能有效帮助了解代码流程,在代码中它们扮演生活中便条的角色,可以帮助我们弄清楚脚本到底干了什么

  [注意]注释一定要精确地描述代码,没有用的注释比没有注释还要糟糕

  有多种方式可以在javascript脚本中插入注释,包括单行注释、多行注释和HTML风格的注释

【1】单行注释以两个斜杠开头

//单行注释

【2】多行注释又叫块级注释,以一个斜杠和一个星号/*开头,以一个星号和一个斜杠*/结尾

/* 这是一个多行注释 */   [注意]块级注释/**/中的那些字符也可能出现在正则表达式字面量里,所以块级注释对于被注释的代码块来说是不安全的 /* var rm_a = /a*/.match(s); */

【3】HTML风格的注释仅仅适用于单行注释,其实javascript解释器对来结束注释

  但javascript不要求这么做,它会把-->视为注释内容的一部分

  [注意]HTML允许上面这样的注释跨越多行,但这种注释的每行都必须在开头加上"