每日一题周总结#03

前端人

共 4043字,需浏览 9分钟

 · 2021-03-20


关注公众号 前端人,回复“加群

添加无广告优质学习群

昨日题目

下面代码的输出是什么?

var number = 5;
var obj = {
    number3,
    fn1: (function ({
        var number;
        this.number *= 2;
        number = number * 2;
        number = 3;
        return function ({
            var num = this.number;
            this.number *= 2;
            console.log(num);
            number *= 3;
            console.log(number);
        }
    })()
}
var fn1 = obj.fn1;
fn1.call(null);
obj.fn1();
console.log(window.number);

A: 10,9,3,27,20

B: 6,NaN,5

C: 5,NaN,6

D: 10,9,5

答案选A

题解

【01】首先匿名自执行函数运行后,变为

var number = 5;

var obj = {
  number3,
  fn1function ({
    var num = this.number;
    this.number *= 2;
    console.log(num);
    number *= 3;
    console.log(number);
  }
}

此时:

this.number *=2 ;
//this为window,所以window.number =10;
number = number*2
//那么,number 为NaN
number= 3;
//number为3。

SO:

window.number =10
number =3

【02】var fn1 =obj.fn1;

那么 fn1 就是

function()
 var num = this.number; 
  //...
}

【03】fn1.call(null) ;

如果将 null 或者是 undefined 作为 this 的绑定对象传入 call、apply 或者是 bind,这些值在调用时会被忽略,实际应用的是默认绑定规则。

等同于运行下面的函数:

function ({
  var num = window.number;
  window.number *= 2;
  console.log(num);
  number *= 3;
  console.log(number);
}

然后:

var num = window.number;//num =10;
window.number *= 2// window.number = 20;
console.log(num); //10
number *= 3//3*3 = 9;
console.log(number);//9

SO:

num =10;
number =9;
window.number =20;

输出了10,9

【04】obj.fn1();

等同于运行:

fn1: function ({
    var num = this.number;
    this.number *= 2;
    console.log(num);
    number *= 3;
    console.log(number);
}

此时:this为obj对象。

 var num = this.number; // num = 3;
    this.number *= 2//obj.number*2=6
    console.log(num);//3
    number *= 3;// number = 27;
    console.log(number);//27

【05】console.log(window.number);

输出20即可。

【06】最后结果:

//10
//9
//3
//27
//20

本周答题正确人员分布

周三

🌙是个哑巴皕圩~邪恶的渣儿
殆知零零发 Heley陈凤平
🍥元宝儿Curtain
🦔沃金hajime
萌萌萌Ziv Zachary😎Charlie
喂喂喂AnthonyOrange
风吹过的发型更自然



周四

皕圩🌙是个哑巴😃
水波不兴hajime佟斌左
🍥元宝儿Alloc@Inithwl😏
Lx沃金Curtain
ԅ(¯ㅂ¯ԅ)Orange
郭之存萌萌萌L
H。


周五

🌙是个哑巴还好还好风吹过的发型更自然
weiyouchajimeL
斯盖酱萌萌萌
Curtainԅ(¯ㅂ¯ԅ)青火


进入送书抽奖名单

🌙是个哑巴hajimeCurtain

以上三位小伙伴记得加我微信,群里争夺本周奖品名额,切记一定要关注公众号,我刚刚在公众号后台搜不搜这其中部分小伙伴的信息了。

记得来主动找我,拉你进群,2021/03/22日(星期一)早上10点,在前端人技术交流④群抽奖

玩法介绍

评论区给出你的答案,并且点个在看每天的每日一题答案由下一天给出,欢迎参与每日一题,一周连续答对5题者,周六任性的鬼哥抽取送前端书籍一本(根据中奖者喜欢自行选择一本

本周题目

前端每日一题#14

前端每日一题#15

前端每日一题#16

题库小程序

最后

大家记得关注公众号后,置顶公众号,才能第一时间接收前端每日一题的文章推送

  • 回复资料包领取我整理的进阶资料包
  • 回复加群,加入前端进阶群
  • console.log("点赞===看===置顶公众号")
  • Bug离我更远了,下班离我更近了


浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报