网站大量收购独家精品文档,联系QQ:2885784924

前端编程课件03-JS高级.pdf

前端编程课件03-JS高级.pdf

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

03-JS⾼级-常⻅⾯试题

1.this绑定

1.1this的绑定规则有⼏种?

默认绑定:⽴函数调⽤,函数没有被绑定到某个对象上进⾏调⽤

隐式绑定:通过某个对象发起的函数调⽤,在调⽤对象内部有⼀个对函数的引⽤。

显式绑定:明确this指向的对象,第⼀个参数相同并要求传⼊⼀个对象。

apply/call

bind

new绑定:

创建⼀个全新对象

新对象被执⾏prototype链接

新对象绑定到函数调⽤的this

如果函数没有返回其他对象,表达式会返回这个对象

1.2this的⾯试题解析

varname=window;

functionPerson(name){

=name;

this.foo1=function(){

console.log();

};

this.foo2=()=console.log();

this.foo3=function(){

returnfunction(){

console.log();

};

};

this.foo4=function(){

return()={

console.log();

};

};

}

varperson1=newPerson(person1);

varperson2=newPerson(person2);

//person1.foo1()//person1隐式调⽤

//person1.foo1.call(person2)//person2显示调⽤this指向person2所在的对象

//person1.foo2();//person1箭头函数向上层作⽤查找上层作⽤域中的this为person1指向

的对象

//person1.foo2.call(person2);//person1箭头函数显示绑定没⽤

//person1.foo3()()//window相当于将返回的函数赋值给⼀个变量指向该变量是⽴函数调⽤

//person1.foo3.call(person2)()//window默认调⽤

//person1.foo3().call(person2)//person2将函数的this显示绑定到person2所在的对象

//person1.foo4()()//person1箭头函数向上层作⽤域中查找thisfoo4中的this隐式绑定为

person1

//person1.foo4.call(person2)()//person2箭头函数向上层作⽤域中查找thisfoo4中

的this显示绑定为person2

//person1.foo4().call(person2)//person1箭头函数显示绑定没⽤和person1.foo4()

()xiangtong

作⽤域

什么是变量提升、函数提升?

变量提升:

简单说就是在js代码执⾏前引擎会先进⾏预编译,预编译期间会将变量声明与函数声明提升⾄其对

应作⽤域的最顶端,函数内声明的变量只会提升⾄该函数作⽤域最顶层。

当函数内部定义的⼀个变量与外部相同时,那么函数体内的这个变量就会被上升到最顶端。

举个例⼦,如:

console.log(a);//undefined

vara=3;//会将vara的声明提升⾄最顶端

函数提升:

函数提升只会提升函数声明式写法,函数表达式的写法不存在函数提升。

函数提升的优先级⼤于变量提升的优先级,即函数提升在变量提升之上。

说说你对GO/AO/VO的理解?

GO

GlobalObjectJS代码在执⾏前会现在堆内存中创建⼀个全局对象(GO)

⽤于存放⼀些定义好的变量⽅法等包含DateArrayStringNumbersetTimeout等

同时有⼀个window属性指向⾃⼰

同时在语法分析转成AST的过程中也会将⼀些变量函数存放在GO中只是变量的初始值为

undefined

AO

函数

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档