当前位置: 首页 > Web前端 > JavaScript

js的几个输出问题,this指针,事件循环,变量提升...

时间:2023-03-27 16:50:56 JavaScript

一.this指向1.functionfoo(){console.log(this.a);}functiondoFoo(){foo();}varobj={a:1,doFoo:doFoo};vara=2;obj.doFoo()//22.varinner='window'functionsay(){console.log(inner)console.log(this.inner)}letobj=(functionf(){varinner='inner-1'return{inner:'inner-2',say:function(){console.log(inner);console.log(this.inner);}}})()say()//window,windowobj.say()//inner-1inner-2obj.say=sayobj.say()//windowinner-2二.事件循环1.//虾皮setTimeout(()=>{console.log('1');Promise.resolve().then(()=>{console.log('2');});},0);newPromise((resolve)=>{console.log('3');resolve();}).then(()=>{console.log('4');setTimeout(()=>{console.log('5');},0);}).then(()=>{console.log('6');});console.log('7');//37461252.asyncfunctionasync1(){console.log('async1start');等待一个同步2();console.log('async1结束');}异步函数async2(){console.log('async2');}console.log('脚本开始');setTimeout(function(){console.log('setTimeout');},0);异步1();新承诺(函数(解决){console.log('promise1');resolve();}).then(function(){console.log('promise2');});console.log('脚本结束');//脚本开始,async1开始,async2,promise1,脚本结束,async1结束,promise2,setTimeout3.Promise.resolve().then(()=>{console.log('promise1');consttimer2=setTimeout(()=>{console.log('timer2')},0)});consttimer1=setTimeout(()=>{console.log('timer1')Promise.resolve().then(()=>{console.log('promise2')})},0)console.log('start');//启动promise1timer1promise2timer24.constpromise=newPromise((reslove,reject)=>{console.log('a');重新开始ve('b')console.log('c')reject('d')setTimeout(()=>console.log('e'),0)})promise.then(data=>{console.log(data);}).catch(err=>console.log(err))console.log('f');//acfbenew与继承函数T1(){this.name='t1';this.age=19;}functionT2(){this.name='t2';这个年龄=19;返回19;}functionT3(){this.name='t3';这个年龄=19;return{name:'t',//年龄:20};}functionT4(){this.name='t4';this.age=19;}console.log(newT1());//{name:'t1',age:19}console.log(newT2());//{name:'t1',age:19}console.log(newT3());//{name:"t"}T4.prototype=newT1();T4.prototype.type='expert';constt4=newT4();console.log(t4);//T4{name:"t4",age:19}console.log(t4.type);//expertconsole.log(t4instanceofT1);//trueconsole.log(t4instanceofT2);//falseconsole.log(t4instanceofT4);//true三.变量提升,函数提升4种变量//1.a()functiona(){console.log(1);}a()vara=function(){console.log(2);}A()//2.a()vara=function(){console.log(1);}a()vara=function(){console.log(2);}a()//3.a()函数a(){console.log(1);}a()functiona(){console.log(2);}a()//4.a()vara=function(){console.log(1);}a()函数a(){console.log(2);}a()