JS权威指南读书笔记(一)

第一章 JavaScript概述

1 JS是一门高端的、动态的、弱类型的编程语言,非常适合面向对象和函数式的编程风格。

第二章 词法结构

1 JS程序是用Unicode字符集编写的。

2 JS是区分大小写的,但是Html并不区分大小写。

3 JS会忽略程序中标识之间的空格,多数情况下,同样会忽略换行符。

4 回车符(\u000D)和换行符(\u000A)在一起被解析为一个单行结束符。

5 空格、换行符和格式控制符可以用在JS的注释、字符串直接量和正则表达式直接量中,但不能用在标识符中。

6 Unicode转义字符可以用在字符串直接量、正则表达式直接量和标识符中(关键字除外)。也可以出现在注释中,但由于JS会将注释忽略,只是被当成上下文中的ASCII字符处理。

7 注释的两种格式:

a 双斜杠"//"后文本

b "/*"和"*/"包含文本

8 JS标识符必须以字母、下划线(_)或美元符号($)开始

9 可选的分号:如果一条语句以"("、"["、"/"、"+" 或 "-" 开始,那么它极有可能和前一条语句合在一起解析。在这些符号前加上";",会避免解析混淆。

10 如果当前语句和下一条语句无法合并解析,JS则在第一行后填补分号,这是通用规则。但是有两个例外:

a 涉及return、break和continue语句场景中

b 涉及"++"和"--"运算符语句场景中

第三章 类型、值和变量

1 数据类型:数字 字符串 布尔值 null undefined 和对象(object)

2 JS解释器有自己的内存管理机制,可以自动对内存进行垃圾回收。

3 JS中所有数字均用64位浮点数表示,然而需要注意的是,数组索引和位操作符是基于32位整数的。

4 ECMAScript标准不支持八进制直接量,但某些实现可以允许采用八进制形式表示整数。

5 JS中算数运算在溢出(overflow)、下溢(underflow)或被零整除时不会报错。

a 下溢:当运算结果无限接近于零并比能表示的最小值还小的情形

6  二进制浮点数和四舍五入错误,未来版本或许会支持十进制数组类型来避免这些舍入问题。

a 0.3 - 0.2 == 0.2 - 0.1 => false

7 const now = new Date, now.setDate(now.getDate() - 2); 取得两天之后的时间戳。

8 字符串的长度是其所含16位值的个数。

9 在ES5中,字符串直接量可以拆分成数行,每行必须以反斜线(\)结束,反斜线和行结束符都不算是字符串直接量的内容。

10 如果函数没有返回值,则返回undefined。

11 包装对象

a var s = "test"; s.len = 4; var t = s.len; t的值是undefined

12 任何方法都无法更改一个原始值

13 类型转换图表


    a null == undefined // 两值被认为相等

b 其他原始值(null没有转换为原始值的valueOf和toString方法,所以跟任何原始值比较都是false)比较,一般均会先转换为数字

14 单元运算符(+,-,!)

a x + "" // 等价于String(x)

b +x // 等价于 Number(x)

c !!x // 等价于 Boolean(x)

15 Number对象的方法

a toFixed() // 根据小数点后的指定位数将数字转换成字符串

b toExponential() // 使用指数计数法将数字转换为指数形式的字符串

c toPrecision() //根据指定的有效数字位数将数字转换成字符串

16 parseInt()

a 第一个参数是字符串,如果不是,将会调用toString()方法转为字符串

b 第二个参数是radix,合法的取值范围是2~36,

c 不能正确转换为数字,返回NaN

d 如果radix参数是undefined、0或者不存在,radix根据不同情况默认值不同

17 对象到原始值的转换,如果是没有目的(指明转为数字或者字符串)的转换,一般会先调用valueOf(一般返回默认对象),然后调用toString。

18 对于所有非日期的对象来说,对象到原始值的转换基本上是对象到数字的转换(首先调用valueOf),日期对象则使用对象到字符串的转换模式。

19 函数作用域是指在函数内声明的所有变量在函数体内始终是可见的。

20 当定义一个函数时,它实际上保存一个作用域链。当调用这个函数时,它创建一个新的对象来存储它的局部变量,并将这个对象添加至保存的那个作用域链上,同时创建一个新的更长的表示函数调用作用域的链。闭包的不同就在于,作用域链是以对象的形式串联起来的,跟c语言变量存在栈中,有着本质的区别,函数结束后会释放。

  

时间: 2024-10-03 21:54:15

JS权威指南读书笔记(一)的相关文章

JS权威指南读书笔记(五)

第十三章 Web浏览器中的JavaScript 1 在Html文档中嵌入客户端4种JS代码方法 a 内联方式,放置在<script>标签之间 b 放置在<script>标签 src 属性指定的外部文件中 c 放置在HTML事件处理程序中 d 放置在URL中,"javascript:" 协议 2 在XHTML中,script标签中内容将被当做其他内容,如果JS代码包含了"<" 或 "&"字符,那么这些字符将被解

JS权威指南读书笔记(七)

第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义 a 事件类型(event type) b 事件目标(event target) target === srcElement(IE8及之前版本) c 事件处理程序(event handler ) 当对象上注册的事件处理程序被调用时,可以说浏览器触发(fire trigger)和派发(dispatch)了事件: d 事件对象(event object) e 事件传播(event propagation)两种形

JS权威指南读书笔记(六)

第十五章 脚本化文档 1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子类型. 3 getElementsByNames() 定义在HTMLDocument类中,而不是Document(文档可能代表HTML也可能代表XML) 类中,所以只针对HTML文档可用. 4 由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点.例如:images.forms

JS权威指南读书笔记(三)

第七章 数组 1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多. 2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个. 3 调用构造函数创建数组 a 调用时没有参数 => 空数组 b 调用时有一个数值参数 => 指定长度的数组 c 显式指定两个或多个数组元素或一个非数值元素 => 参数成为新数组的元素 4 稀疏数组:包含从0开始的不连续索引(即 '索引值' in '数组' 运算返回 false)的数组.可以用Array

JS权威指南读书笔记(二)

第四章 表达式和运算符 1 new调用构造函数的过程 a 创建一个新的空对象 b 设置空对象的_proto_指向构造函数原型prototype c 将这个新对象当做this的值来调用构造函数 d 如果构造函数不返回一个对象值,则返回新对象 2 左值:表示存储在计算机内存的对象. 3 除数为0的运算结果是正无穷大或负无穷大,0/0的结果是NaN. 4 位运算符会将NaN.Infinity和-Infinity都转换为0. 5 in运算符希望它的左操作数是一个字符串或可以转换为字符串,右操作数是一个对

JS权威指南读书笔记(四)

第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符 a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字面含义进行匹配的,非字母的字符需要通过反斜线(\)作为前缀进行转义. 3 字符类:将直接量字符单独放进方括号内就组成了字符类.一个字符类可以匹配它所包含的任意字符. 转义符\b 具有特殊含义,当用在字符类中,它表示退格符,所以一个元素的字符类[\b]表示一个退格符. 4 重复 5 在待匹配的字符后跟随一个问号(?),

IDA.Pro权威指南 读书笔记

http://www.pediy.com/kssd/pediy12/142766.html 标 题:IDA.Pro权威指南 读书笔记[Made By C_lemon] 作 者:Dstlemoner 时 间:2011-11-14 11:56:17 链 接:http://bbs.pediy.com/showthread.php?t=142766    IDA为反汇编 和逆向破解的 静态分析利器 ! 虽然是利器,但是你不会用的话~那就另当别论了. →     唉.对于刚入门的新手来说,看前人走过的路程

Hadoop权威指南读书笔记

本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系统. MapReduce:分布式数据处理模型和执行环境,运行于大型商业集群. HDFS:分布式文件系统,运行于大型商用机集群. Pig:一种数据流语言和运行环境,用以检索非常大的数据集.Pig运行在MapReduce和HDFS的集群上. Hive:一个分布式.按列存储的数据仓库.Hive管理HDFS

Android编程权威指南-读书笔记(二)-第一个小程序

Android编程权威指南-读书笔记(二) -第一个小程序 第一个例子介绍 应用名为GeoQuiz.用户通过单击True或False按钮来回答屏幕上的问题,GeoQuiz可即时反馈答案正确与否. 这个例子为我们简单介绍了几个基本组件的使用,以及基本的事件监听.让我们对基本组件的使用和事件的监听有一个基本的了解. 这篇文章分为2个部分,第一部分就是创建简单的UI.第二个部分就是对这个UI增加代码来响应一些操作. (注:所有不明白或者不理解的东西其实都不重要,后面都会有更详细的介绍.) 本章的目标