JS学习

1、解释性语言、单线程

2、js三大部分:ECMAScript、DOM、BOM

3、原始值(stack):Number、String、Boolean、undefined、null

     引用值(heap):array、Object、function、date、RegExp....

4、false:undefined、null、NaN、""、0、false==》false

5、alert(parseInt("123abc"))、toFixed(2)、typeof(typeof(a))、typeof 123

6、function:高内聚、弱耦合。

7、function sum(a,b){}    arguments:[],实参列表。函数名.length:形参数量

a和arguments[0],值相等、映射关系,改变联动

arguments看传进来的实参数。sum(1),b=2,arguments[1]依然是undefined

8、js运行三部曲:语法分析、预编译、解释执行

9、预编译:(函数声明整体提升、变量  声明提升)

1)imply global暗示全局变量:任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。

2)一切声明的全局变量,全是window的属性

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)由于原型链的以下问题,所有很少会单独使用原型链:

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

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值