Javascript 权威指南笔记

1. javascript中有对象概念  包含属性和属性值

2. 对象+函数=方法 a.reverse() a对象调用逆排序方法 

3. 区分大小写 html 不区分 不要搞混

4. 语句后最好加分号

5. 自动内存垃圾回收 当没有引用指向对象时被回收

6. 转义符 \

7. 局部变量必须用var

8. 全局变量和局部变量重名,全局变量被覆盖

9. 函数里声明的所有变量都被提前至函数体顶部

10. 将所有变量看作是一个对象的属性 这些对象(虚拟的)形成一个作用域链 查找对象时从第一个对象开始查找

11. == ===表示相等和严格相等

12. in 运算符表示判断一个对象中是否包含某属性

13. instanceof 判断谁是谁的实例

14. for/in循环用来更方便的遍历对象的属性

15. 语句可以定义标签 mainloop:while() 通过标签调用while循环

<---------------------------------函数---------------------------------------->

1. 闭包:在JS中有作用域和执行环境的问题,在函数内部的变量在函数外部是无法访问的, 全局变量可以在函数内部访问创建闭包可以解决  闭包可以将变量一直保存在内存中

2. 闭包原理: f1中n对外部不可见  f2中n=f1中n 所以return f2就可在外部对n可见

function f1(){

var n=999;

function f2(){

alert(n); 

}

return f2;

}

var result=f1();

result(); // 999

3.不能在外部直接调用内部函数

4.如果内部函数引用了位于外部函数的变量 当外部函数被调用完成后 这个变量也不会被释放 因为闭包需要它

<-------------------------------------类&原型-------------------------------->

1. 每个对象都从原型对象那里继承属性

2. 定义构造函数类名首字母大写 普通函数首字小写

3. 构造函数必须通过new 来创建

4. 对象从其原型继承属性,可以通过给原型对象添加新的方法来扩充类--类的动态可继承性

5. 鸭式辨型:通过对象的行为判断一个对象的类是什么

6. JavaScript里所有的东西都是对象. 对象是属性的集合. 数字, 字符串, 布尔值等原始值是"伪对象", 它们同样拥有属性, 但是是在栈上分配并按值传递. 而其他的对象是堆上分配并按引用传递.

7. 每个对象都有constructor属性表示创建该对象的构造函数

8. 构造函数也是对象, 那构造函数是由什么创建? 内建的Function函数

9. Function是本机代码实现的固有对象. 为了一致性, Function也有constructor属性, 该属性指向它自己

10. prototype是构造函数的一个属性, 该属性指向一个对象. 而这个对象将作为该构造函数所创建的所有实例的基引用(base reference)

11. 模块化:http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

<-------------------------------------------正则表达式----------------------------------------------->

1. 如果不记着哪些符号需要转义 可以在符号前加\预防

2. /[abc]/ 和字母a, b, c中任何一个都匹配

3. ^表示否定匹配 /[^abc]/ 匹配任何不包含a,b,c的字符

4. /[a-z]/匹配所有小写字母  /[a-zA-Z0-9]/匹配所有字母和数字

5. 锚字符:^匹配开头 $匹配结尾 (?=p)零宽正向先行断言 要求接下来的字符都和p匹配 (?!p)零宽负向先行断言要求接下来的字符都不和p匹配

6. 修饰符:i 不区分大小写 g 全局模式匹配 找到所有匹配 m 多行匹配   修饰符在/ /后面

7. js中使用正则表达式:search() match() replace() split()

< ------------------------------------------子集和扩展---------------------------------------------->

1. 解构赋值:let [x,y] = [1,2] 等价于 x=1, y=2 两侧结果不用一一对应 多余出来的变量被赋值为undefine

<-------------------------------------------服务器端JS--------------------------------------------->

<------------------------------------------Web浏览器中得JS-------------------------------------->

1. window对象是所有客户端JS特性的主要接入点, document属性是window对象最重要的属性 该属性有重要的方法 如 getElementById()

2. HTML中嵌入JS 四种方法:内嵌   标签src属性制定的外部文件中 放在HTML事件处理中如onClick  放在URL中

3.  URL中JS 部分浏览器回执行URL中JS 如FF

4. JS在浏览器中得执行过程

5. JS是单线程的 浏览器在处理脚本时停止用户响应

6. 为了解决JS单线程缺陷可以使用setTimeout() setInterval() 方法在后台运行子任务

7. HTML的 Web Worker 用来执行计算密集任务而不冻结用户界面

8. 功能测试是解决浏览器兼容问题的强大技术:如果想用某种功能但不知道是否在所有浏览器中都有比较好的兼容性就使用功能测试

9. 为处理兼容性问题可以加入IE 兼容性注释

10. 安全性:一些浏览器禁用JS功能:JS打开新的浏览器窗口  关闭自己代开的浏览器窗口 FileUpload 元素 value属性为只读 否则可以将其变为期望上传的文件名(如密码文件) 不能从不同服务器载入文档内容 不能在来自不同服务器的文档上注册监听事件

11. 同源策略:脚本只能读取和所属文档来源相同的窗口和文档属性

12. 跨站脚本 XSS:攻击者向目标站点注入HTML标签或恶意脚本 如

        

你可能感兴趣的:(Javascript 权威指南笔记)