本文作为个人学习笔记,一直也没有重视javascript的系统学习(javascript是最容易被人忽视的语言),我都是要用的时候百度一下查找下资料开始用,但没有系统的,学习,和整理过javascript,有时候直接用百度来的Javascript代码改改就开始用了(拿来主义),做了3年半技术,现在构建自己的技能树发现自己这一块是一个空缺,所以就准备好好复习下javascript,便有了这系列的笔记。计划主要从两个大方向开始复习,一是:javascript核心部分,二:客户端javascript。
概述:
javascript是面向Web的编程语言,大部分网站都在使用javascript,并且Web浏览器,桌面系统,游戏机,平板电脑,智能手机。都包含了javascript解析器,这使得javascript称的上是最广泛的编程语言。“javascript”这个名字经常被人误解,除了语法看起来和java类似之外,javascript和java是完全不同的开发语言,javascript早已经超出了“脚本语言”本身范畴了,成为一种健壮性,高效性和通用为一身的编程语言。
干货开始:
1.词法结构
编程语言的语法结构是一套基础规则,用来描述如何使用这门编程语言来编程,作为语法的基础,他规定了变量名是什么样的,怎么写注释,以及程序语句怎么分隔等规则。
1.1字符集
javascript程序是用Unicode字符集编写的,Unicode是Ascll和Latin-1的超集,并且支持地球上几乎所有的语言,ECMAScript 3要求javaScript的实现必须支持Unucide2,1及h后续版本,EcMAScript 5则要求支持Unicode 3及后续版本
1.1.1 区分大小写
javascript是区分大小写的语言,也就是说关键字,变量,函数名称和所有的标识符都必须区分采用一致的大小写形式,比如,关键词“while”必须写成“while”,就不能写成“While”或者“WHILE”,同样,“online”,"Online","OnLine","ONLINE"这是4个不同的变量名。
1.1.2 空格,换行符合格式控制符
javascript会忽略掉程序中的标识(token)之间的空格。多少情况下,javascript同样会忽略换行符,由于可以在代码中随意的使用空格和换行,因此可以采用整齐,一致的缩进来形成统一的编程风格,提高代码可读性。(小说嘀咕:编程规范很重要)
1.2注释
Javascript支持两种格式的注释,在“//”之后的文本都会被javascrip当做是注释忽略掉,另外一种注释是“/*”和“*/”之间的文本也会被当成是注释,这种注释可以跨行书写,但不能嵌套的注释,例如:
//这里是单行注释
/*这里是一段注释*/ //这里是另外一段注释
/*
*这里是大段注释(可以多行)
*/
1.3直接量
直接量,就是程序中使用的数据值,下面列出的都是直接量
12//数字
1.9//小数
“Holle World”//字符串文本
“Hi”//另外一个字符串
true//布尔值
false//另外一个布尔值
/javascript/gi //正则表达式(模糊匹配)
null //空
1.2.4标识符和关键字
标识符符就是一个名字,在javasrcipt中,标识符用对变量和函数进行命名,或者用做javascript代码中的循环语句跳转位置的标记,javascript标识符必须以字母,下划线(_)或美元符($)开始,后续的字符可以是字母,数字,下划线或者美元符(数字不允许作为首字符出现的,以便javascript可以轻易分开标识符和数字),下面是合法的标识符
i
my_variable_name
v13
_dummy
$str
保留字
javascript 把一些标识符拿出来用做自己的关键字,因此,就不能在程序中把这些关键字用做标识符了:
break delete function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with
default for null try
javascript同样保留了一些关键字,这些关键字在EcmaScript 5保留 了这些关键字:
class const enum export extends import super
此外,下面这些关键字在普通的javascript代码中是合法的,但在严格模式下是保留字
implements let private public yield
interface package protected static
严格模式同样对下面的标识符使用做了严格的限制,它们并不完全是保留字,但不能用做变量名,函数名或参数名:
arguments eval
ECMAScript3将Java的所有关键字都列为自己的保留字,尽管这些保留字在ECMSAScript 5中放宽了限制,但如果你希望代码在ECMAScript 3 实现解释器上运行的话。
应该避免使用这些关键字作为标识符
abstract double goto native static boolean enum implements package super byte export import package super byte export import private sybchronized
char final interface public transient const float long short volatile
Javascript 预定义了很多全局变量和函数,应当避免把他们的名字用做变量名,和函数名:
arguments encodeURI Infinity Number RegExp Array encodeURIcomponent isFinite object String Boolean Error isNaN parseFloat SyntaxError Date eval JSON parseInt TypeError decodeURL EvalError Math RangeEError undefined decodeURICpmponent Function NaN ReferenceError URIError
JavaScript的具体实现可能定义独有的全局变量和函数,每一种特定的JavaScript运行环境(客户端,服务端等)都有自己的一个全局属性列表,这一点是需要牢记的。
1.2.5 可选的分号
和其他的语言一样,javascript使用分号(;)将语句分隔开,这对增强代码的可读性和整洁性是非常重要的,缺少分隔符,一条语句的结束就成了下一条语句的开始了。反之亦然,在JavaScript中,如果语句各种独占了一行,通常可以省略掉语句之间的分号,我个人习惯是使用(;)来明确标记语句结束,即使在并不完全需要分号的时候也是如此。(我比较推荐这种方式,方面代码的阅读,和避免出错)。另外一种编码风格是,在任何可以省略掉分号的地方将其省略掉,只有在不得不用时才使用上分号。
本文只做个人复习总结使用,如有写的有错误的地方,希望大家指出,我定及时改正....