Javascript 读书笔记

记录下关键信息,方便我回忆

1.基础

1.1 字符集

Javascript 采用 Unicode 编码,区分大小写,支持\u2029这种转义。

1.2 注释

同 C 和 JAVA,支持 // 形式的单行注释,也支持 /* */的多行注释。

1.3 标识符和保留字

标识符用于对变量和函数命名,或用作某些循环跳转位置的标记。标识符必须以字母,下划线或美元符开头,后面可跟字母,数字,下划线或美元符。一般只使用英文字母和数字做标识符。
保留字是系统自用的一些标识符,为避免与系统冲突,请不要使用这些标识符。

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

还有一些保留字,就不一一列出了,包括 Java 所有的关键字和 Javascript 本身实现的全局变量和函数。

1.4 可选的分号

js 将分号作为语句的结束标志,但不是必须的,默认会采用贪婪原则尽量向下拼行,直到不能正确处理。实际使用时,还是都加上分号,避免因不熟悉规则引入的问题。

var a
a
=
3
v=1;

因为 var a a不能组织成有效的语句,所以实际处理为 var a; a=3;v=1;

1.5 数据类型

整数和浮点数统一用浮点数值表示,用64位浮点格式表示数字。表示整数时,范围为 – 9 007 199 254 740 992 ~ 9 007 199 254 740 992(即-2^{53} ~ 2^{53}),表示浮点数时,最大值为\pm{1.7976931348623157^{308}},最小值为\pm{5*10^{-324}}

  1. Javascript 数组是一种特殊的对象,js 为其提供了独特的 API。
  2. 函数也是一种特殊的对象,其关联了一组可执行的代码。
  3. javascript 是弱类型语言,会自动做类型转换。
  4. 数值运算超出范围时会返回正负无穷大(Infinity和-Infinity),当要表示的负数无限接近0,js无法精确表示时,会返回-0。
  5. 1/0 在js中不会报错,会返回无穷大。
  6. 0/0 会返回NaN(表示not a number,不是一个数字)。
  7. NaN 不等于任何值,包括其本身。

1.5.1 变量

  1. 用 var 定义变量
  2. 不在任何函数内定义的变量全局有效
  3. 在函数内申明的变量仅在函数作用域内有效
  4. 没有区块作用域,函数内申明的变量在函数内任意位置都有效

1.5.2 包装对象

字符串,数字,布尔值作为原始类型,但是却能见到调用对象方法的调用方式,且不会报错。因为 js 在需要使用字符串对象时,会用构造器临时创建一个字符串对象。

var s = "test";   //创建一个字符串
s.len = 2;          // 给他设置一个属性,会创建临时字符串对象
var t = s.len  // t 的值为undefined,因为临时对象用完就销毁了

1.5.3 访问对象和数组

  1. 对象和数组均可通过 . 和 [] 的形式访问
  2. 点式访问作用于数组时,会先将数组转为对象,再按照对象的方式访问
  3. [] 的形式访问,会先计算[]之间的表达式的值

1.5.4 创建对象

采用 new Object(1, 2) 的形式,当无构造参数时,可省略括号 new Object


书看到这,看下去再记。