JavaScript学习笔记

1、一个完整的 JavaScript 实现应该由下列三 个不同的部分组成(见图 1-1)。  核心(ECMAScript)  文档对象模型(DOM)  浏览器对象模型(BOM) 

2、JavaScript有2点:1)解释性语言;2)单线程

3、主流浏览器及内核

4、单一var模式

只使用一个var在函数顶部进行变量声明。
优点:

  1. 提供单一的地址以查找到函数所需要的所有局部变量
  2. 防止变量在定义前就被使用的逻辑错误
  3. 帮助牢记要声明变量,以尽可能少地使用全局变量
  4. 更少的编码

声明变量时同时初始化变量,为变量赋初值。这样根据变量的初始值就知道使用这些变量的意图。
提升:JavaScript允许在函数的任意地方声明变量,无论在哪里声明,效果等同于在函数顶部声明。即:只要变量是在同一个范围(同一函数)里,就视为已经声明,哪怕是在变量声明前就使用。

5、

var a=5;

var b=(a++) + (++a) + a;=>var b=5+7+7; 

6、 返回false的:undefined、null、NaN、""、0、false,其他都是true

7、&&:data&&fun(data);

8、||:var event=e||windows.event;

9、for循环

for(var i=0;i<10;i++){document.write('a');}

1)var i=0;

2)if(i<10){document.write('a');

3)i++;-->i=1

4)if(i<10){document.write('a');

5)i++;-->i=2

10、typeof()返回值:number string boolean object undefined function

11、预编译

函数声明整体提升

变量声明提升

12、预编译四部曲

1)生成AO对象

2)找形参和变量声明,将变量和形参名作为属性名,值为undefined

3)将实参值和形参统一

4)在函数体里面找函数声明,值赋予函数体

13、继承

原型链实现继承。

object->SuperType->SubType->instance

逐层向上查找调用的属性,查到为止。

必须在用SubperTpye的实例替换原型之后,再定义这两个方法(SuperType.getSuperValue和SubType.getSubValue):理解为继承时,先继承实例,再添加新方法?

1)由于原型链的以下问题,所有很少会单独使用原型链:

①包含引用类型值得原型属性会被所有实例共享;

②创建子类型的实例时,不能向超类型的构造函数中传递参数。

posted @ 2018-06-07 11:25  xingyezhihun  阅读(97)  评论(0编辑  收藏  举报