JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态(行为、动作)功能。 1995年由Netscape公司的Brendan Eich在网景导航者浏览器(Netscape Navigator)上首次设计并实现。
JavaScript之名 Netscape在最初将其脚本语言命名为LiveScript,后来与Sun合作之后将其改名为JavaScript(一是技术角度:JavaScript最初受Java启发而开始设计的,语法上有类似之处,一些名称和命名规范也借自Java;二是营销角度:为了市场营销便利借助了Sun的Java语言名字),但实际上她与Java是无论在概念还是设计上两种完全不同的语言。
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。TC39(Technical Committee 39, ECMA的第39号技术专家委员会)负责制订ECMAScript标准。
保留字(Reserved Word)= 关键字(Keyword)|未来保留字(Future Reserved Word)|空置字面值(Null Literal)|布尔字面值(Boolean Literal)
标识符就是给变量、函数和对象等指定的名字。JavaScript语言中标识符的命名规则如下:
注意:javascript使用unicode字符集, 只支持16位(2个字节)的utf-16编码(限于ECMAScript 5.1及其以下)。JavaScript字母包含中日韩等亚洲文字,javascript标识符可以使用中文。
源类型 | 目标类型 | |||
---|---|---|---|---|
数值类型 | 字符串类型 | 布尔类型 | 对象 | |
数值类型 | 不变 | 数值字符串 | true | Number对象 |
Infinity | 不变 | "Infinity" | true | Number对象 |
-Infinity | 不变 | "-Infinity" | true | Number对象 |
0 | 不变 | "0" | false | Number对象 |
NaN | 不变 | "NaN" | false | Number对象 |
字符串类型 | 数值或NaN | 不变 | true | String对象 |
空字符串 | 0 | 不变 | false | String对象 |
true | 1 | "true" | 不变 | Boolean对象 |
false | 0 | "false" | 不变 | Boolean对象 |
null | 0 | "null" | false | Error |
undefined | NaN | "undefined" | false | Error |
对象 | valueOf()或NaN | toString() | true | 不变 |
JavaScript是弱类型脚本语言,声明变量时无须指定变量的数据类型。但JavaScript的值运行时保存在内存 中时,也是有数据类型的。JavaScript的基本数据类型有如下5种类型:
数值类型包含整数或浮点数,通常需要掌握以下4点知识点,特别要了解Number类的5个常量。
Number类的常量 | 特殊值 |
---|---|
Number.MAX_VALUE | 最大数值(最大正数) 1.7976931348623157e308 |
Number.MIN_VALUE | 绝对值最小的正数 5e-324 |
Number.POSITIVE_INFINITY | 正无穷大Infinity |
Number.POSITIVE_INFINITY | 负无穷大-Infinity |
Number.NaN | 非数 NaN: Not a Number |
JavaScript的字符串必须用引号括起来,此处的引号既可以是单引号,也可以是双引号。 javascript使用unicode字符集, 只支持16位(2个字节)的utf-16编码,不支持32位(限于ECMAScript 5.1及其以下)。 JavaScript区分大小写,转义字符依然是“\”。
转义字符 | 说明 | 转义字符 | 说明 | 转义字符 | 说明 |
---|---|---|---|---|---|
\n | 换行回车 | \t | 制表符 | \\ | 反斜线 |
\r | 回车 | \" | 双引号 | \xHH | 拉丁字母(HH表示2位16进制数) |
\b | 退格 | \' | 单引号 | \uHHHH | Unicode字符(HHHH表示4位16进制数) |
布尔类型的值只有两个:true和false。布尔类型的值通常是比较运算、逻辑运算的结果或对象的某种开关状态,通常用于if、while的判断。
未定义类型只有undefined一个值,某个变量未定义或者没有赋值,某对象的属性未定义。空类型只有null一个值,用于表明某个变量的值为无或不确定。
赋值运算符: 变量名 = 表达式; 算术运算符有加(+)、减(-)、乘(*)、除(/)、取余(%)、自加(++)、自减(--)、乘方(**)等;双目运算:+_*/%和**、单目运算:++和--。
比较运算: 相等与不等、数值大小、字符串排列前(小)后(大); 比较运算符有等于(==)、精确等于(===)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)七种,均属于双目运算,比较运算的结果是true或false。
逻辑运算符用于操作布尔型表达式(布尔型变量或常量、比较表达式),&&(and、与、而且)和||(or、或、或者)是双目运算,!(not、非)是单目运算,逻辑运算的结果是布尔值true或false。
其他运算我们这里是指三目判断运算(?:)、二目判断变量是否类实例运算(instanceof)、单目判断变量数据类型运算(typeof)、单目返回undefined值运算(void)。void通常用在a标签的href属性赋"javascript:void(0);"网页不会当前文档处装入任何内容,如点我没有反应的!
正则表达式的本质是一种特殊字符串,这种特殊字符串允许使用“通配符”,因此一个正则表达式字符串可以匹配一批普通字符串。JavaScript正则表达式的元字符.()[]{}\^$|?*+。JavaScript正则表达式直接量必须放在两条斜线之间,也可使用new RegExp(模式字符串, 属性); 生成正则表达式---RegExp对象。
合法字符 | 通配符 | 频率修饰符 | new RegExp()属性修饰符 | ||||
---|---|---|---|---|---|---|---|
字符 | 说明 | 通配符 | 说明 | 修饰符 | 说明 | 修饰符 | 说明 |
x | 任何合法字符 | \d | 数字字符[0-9] | ? | 0或1次 | g | 0或1次 |
\n | 换行符(\u000A) | \D | 非数字字符[^0-9] | * | 0或多次 | i | 0或1次 |
\r | 回车符(\u000D) | \s | 所以空白字符[ \t\n\x0B\f\r] | + | 1或多次 | m | 多次 |
\t | 制表符(\u0009) | \S | 所以非空白字符[^ \t\n\x0B\f\r] | {m,n} | 最少m次最多n次 | ||
\f | 换页符(\u000C) | \w | 所有单词字符[a-zA-Z_0-9] | {,} | 最少0次最多无限次 | ||
\cx | 控制符ctrl x:a-zA-Z如\cc ctrl-c | \W | 所有非单词字符[^a-zA-Z_0-9] | {,n} | 最少0次最多n次 | ||
\xhh | 0xhh表示的字符 | . | 任何字符[^\n\r] | {m,} | 最少m次最多无限次 | ||
\uhhhh | 0xhhhh表示的unicode字符 | ^ | 一行的开头 | {m} | m次 | ||
$ | 一行的结尾 | ||||||
[] | A-Z,a-z,0-9,\u4e00-\u9fa5 汉字 |
语句块就是使用花括号包含的多个语句,语句块是一个整体的执行体,类似于一个单独的语句。虽然语句块类似于一个单独的语句,但语句块后不需要以分号结束。但语句块中的每个语句都需要以分号结束。
循环控制语句while, do-while, for, for-in, break, continue
异常抛出语句(throw)、异常捕捉语句(try-catch-finally)