JavaScript权威指南手记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript权威指南手记相关的知识,希望对你有一定的参考价值。

1、词法结构

程序设计语言的词法结构是一套基本规则,用来详细说明如何用这种语言来编写程序,它是语言的最低层次,指定 了变量是什么样,注释应该用什么字符以及语句之间如何分割等

1.1、字符集

javascript程序是用Unicode字符集编写的,与ascii编码(7位)不同的是,16位Unicode编码可以表示地球上通用的每一种书面语言,它是国际化的一个重要特征,对于那些不同英语的程序员尤为重要

美国以及其他讲英语的国家的程序设计者通常都用仅支持ascii码和latin-1编码的文本编辑器来编写程序,因此他们难以访问完整的unicode字符集,都是这都不是问题,因为asicii编码和latin-1编码都是unicode编码的子集,所以用这两种编码编写的javascript程序都是绝对有效的,JavaScript程序中的每个字符都是用2个字节表示的。

1.2、大小写敏感

JavaScript是一种区分大小写的语言,这就是说,在输入语言的关键字、变量、函数名、以及所有的标识符时,都必须采用一致的字符大小写形式。

但是要注意,html并不区分大小写(尽管在XHTML中是区分大小写的),由于它和客户端的JavaScript相关联,所以这一点很容易忽略

1.3、空白符和换行符

JavaScript会忽略程序中记号之间的空格、制表符、换行符,因为可以在程序中随意使用空格、制表符、和换行符,所以程序员就可以采用整齐、一致的方式自由安排程序的格局,在其中使用缩进,从而使得代码更容易的阅读和理解。

1.4、可选的分号

JavaScript中的简单语句后通常都有一个分号(;),就像java语言一样,这主要为了分割语句,但是在JavaScript中,如果语句放置在不同的行中,就可以省略掉分号,比如下面的代码

var a =1 ;
var b = 2 ; 

但是以上代码写在一行,这个分号就不能省略

var a=1 ;var b=2 ;

省略分号并不是一种好的编程习惯,应该习惯使用分号

尽管理论上来说JavaScript允许在任意的2个记号之间放置换行符,但是实际上JavaScript会自动插入分号,使这一规则产生了异常。如果你使用上述方式打断了一行,以至于使换行符之前的一行形成了一个完整的语句,那么JavaScript就会认为漏掉了分号,并插入一个分号,,这就改变了你的初衷,通常在使用return语句、break语句、和continue语句时我们应当要注意这一点,比如考虑如下的语句:

return
true;

JavaScript会假定你的意图是:

return ;
true;

但是实际上你的意图是:

return true;

注意:这种代码不会引发语法错误,但是却会因为产生一种不明确的状态而导致错误。

1.5、注释

和Java一样,在JavaScript中也存在两种注释

单行注释://注释的内容

多行注释:/*注释的内容*/

1.6、直接量

所谓的直接量(literal),就是程序中直接显示出来的数据值,下面的值都是直接量

1.2
12
"helloworld"
‘hi‘
true
false
null

在javascript中像数组直接量和对象直接量这样的表达式也是支持的,比如

{x:1,y:2}
[1,23,4,5]

直接量对于任何一门程序语言都是重要的部分,因为编写不含有直接量的程序几乎是不可能的

1.7、标识符

所谓的标识符(idetifier)就是一个名字,在JavaScript中,标示符用来命名变量和函数,或者用作JavaScript代码中某些循环标签,在JavaScript中合法的标识符的命名规则和Java以及其他语言的命名规则基本上相同。

标识符和JavaScript中用于其他用途的关键字同名。

1.8、保留字

在JavaScript中,保留字是不能当做标识符的,因为他们在JavaScript中有这特殊的意义

保留的JavaScript的关键字

break,do,if,switch,typeof,case,else,in,this,var,catch,false,instanceof,throw,void,continue
finally,new,true,while,deault,for,null,try,with,delete,function,return

ECMA扩展的保留字

abstract,double,goto,native,static,boolean,enum,implements,package,super,byte,export,import
private,synchronized,char,extends,int,protected,throws,class,final,interface,public,transient
const,float,long,short,volatile,debugger,as,namespace,use

此外,还应该避免把JavaScript预定义的全局变量名或全局函数名作为标识符,如果用这些名字创建变量或函数,就会得到一个错误(如果该属性是只读的),或者重定义了一个已存在的变量或者函数。不应当这么做,除非绝对明确自己在做什么。

要避免使用的其他标示符

arguments,encodeURI,Infintiy,Object,String,Array,Error,isFinite,parseFloat,SyntaxError
Boolean,escape,isNaN,parseInt,TypeError,Date,eval,Math,RangeError,undefined,decodeURI
EvalError,NaN,ReferenceError,unescape,decodeURIComponent,Function,Number,RegExp,URIError

最后欢迎大家关注我博客旁边的网络课堂:http://edu.51cto.com/lecturer/11220344.html

也希望大家可以给我留言,共同讨论技术

以上是关于JavaScript权威指南手记的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript权威指南 清晰版

JavaScript圣经中哪些奇怪的问题

《JavaScript权威指南》学习——js闭包

javascript权威指南第13章 事件示例代码

JavaScript权威指南 - 函数

JavaScript权威指南(第6版)(中文版)--系列3(语句)