js筆試題大全--附詳解

考查this指向

1、

    let length=100
    function f1(){
        console.log(this.length)
    }
    let obj={
        length:10,
        f2:function(f1){
            f1()
            arguments[0]()
        }
    }
    obj.f2(f1,1);  //100  2

    //分析arguments[0]形式
      function f1() {
        console.log(this)
      }
      let arr = [f1, 1, 2, 3]
       arr[0]()      //注意這里陋率,數(shù)組調(diào)用函數(shù)就類似于對象調(diào)用函數(shù)  像:obj['f1']()球化,所以this指向該數(shù)組

分析:this指向分為以下幾種情況
1、默認綁定 無調(diào)用者會指向window瓦糟, 嚴格模式下指向undefined筒愚,node環(huán)境指向global;
2菩浙、隱式綁定 指向調(diào)用者巢掺;
3、顯示綁定call apply bind(改變this指向)劲蜻;
4址遇、new方式

解析:顯然f2函數(shù)是被obj對象調(diào)用的,所以f2中的this是指向obj的斋竞,f1函數(shù)作為參數(shù)傳遞到f2函數(shù)中被調(diào)用倔约,前面并沒有調(diào)用者,所以f1函數(shù)中的this指向window坝初,所以會輸出100浸剩;arguments是指傳入的形參,承接代碼中的分析鳄袍,this應(yīng)該指向的是arguments數(shù)組對象绢要,故this.length就等于arguments.length,所以輸出了2;

全局變量和局部變量同名時的坑

1拗小、

var a=10
function test(){
    console.log(a)
    a=100;
    console.log(this.a)
    var a;
    console.log(a)
}
test()  //undefined 10 100

//這里可以進一步改造一下
var a=10
function test(){
    console.log(a)
    a=100;
    console.log(this.a)  //注意V刈铩!!這里this依然是指向window剿配,但是因為a=100改變的是全局變量搅幅,
                         //this.a指向的也是全局變量a,所以會跟著全局變量發(fā)生改變呼胚,輸出100茄唐;
    //var a;    去掉這行代碼    此時沒有了變量提升,函數(shù)中的變量a都是使用的全局變量a
    console.log(a)
}
test()  //10 100 100

涉及知識點:
變量提升和預(yù)解析蝇更;
作用域沪编;

解析:
函數(shù)中有用var聲明的變量,所以變量a會被提升到函數(shù)作用域中的頂部年扩,由于此時a只是聲明并未進行復(fù)制操作所以第一行會打印undefined蚁廓;
a=100此時的a變成了一個局部變量,所以this.a指向的是window下全局變量a厨幻,因此打印10相嵌;
因為前面局部變量a已經(jīng)進行了賦值,所以最后打印出100

2克胳、

var a=10;
function f1(){
    var b=2*a
    var a=20
    var c=a+1
    console.log(b)
    console.log(c)
}
f1()    //NaN 21
//執(zhí)行過程相當于:
var b;
var a;
var c;
b=2*a;
a=20;
c=a+1;
console.log(b);
console.log(c);
//結(jié)果是不是一目了然了呢

這里注意一下2*undefined等于NaN

未完待續(xù)...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市圈匆,隨后出現(xiàn)的幾起案子漠另,更是在濱河造成了極大的恐慌,老刑警劉巖跃赚,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笆搓,死亡現(xiàn)場離奇詭異,居然都是意外死亡纬傲,警方通過查閱死者的電腦和手機满败,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叹括,“玉大人算墨,你說我怎么就攤上這事≈祝” “怎么了净嘀?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侠讯。 經(jīng)常有香客問我挖藏,道長,這世上最難降的妖魔是什么厢漩? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任膜眠,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宵膨。我一直安慰自己架谎,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布柄驻。 她就那樣靜靜地躺著狐树,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸿脓。 梳的紋絲不亂的頭發(fā)上抑钟,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音野哭,去河邊找鬼在塔。 笑死,一個胖子當著我的面吹牛拨黔,可吹牛的內(nèi)容都是我干的蛔溃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼篱蝇,長吁一口氣:“原來是場噩夢啊……” “哼贺待!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起零截,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤麸塞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涧衙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哪工,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年弧哎,在試婚紗的時候發(fā)現(xiàn)自己被綠了雁比。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡撤嫩,死狀恐怖偎捎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情序攘,我是刑警寧澤鸭限,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站两踏,受9級特大地震影響败京,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梦染,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一赡麦、第九天 我趴在偏房一處隱蔽的房頂上張望朴皆。 院中可真熱鬧,春花似錦泛粹、人聲如沸遂铡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扒接。三九已至,卻和暖如春们衙,著一層夾襖步出監(jiān)牢的瞬間钾怔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工蒙挑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宗侦,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓忆蚀,卻偏偏與公主長得像矾利,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子馋袜,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 前言 為了方便現(xiàn)在和以后前端學習和面試男旗,在此收集和整理了Js相關(guān)的筆試面試題,供自己查閱的同時欣鳖,希望也會對大家有所...
    蛙哇閱讀 1,834評論 0 8
  • 一察皇、js的基本類型有哪些?引用類型有哪些观堂?null和undefined的區(qū)別让网?1呀忧、基本類型Number,Strin...
    林立鎮(zhèn)閱讀 807評論 0 18
  • 一师痕、 JS面向?qū)ο缶幊?1、 面向?qū)ο蠼榻B 什么是對象而账? Everything is object (萬物皆對象)...
    寵辱不驚丶歲月靜好閱讀 824評論 0 2
  • 1. javascript的typeof返回哪些數(shù)據(jù)類型. 答案:string,boolean,number,un...
    townof1997閱讀 243評論 0 0
  • 1. JS創(chuàng)建變量的5種方式胰坟?varletconstfunctionexport/import 2. var,le...
    Angel_6c4e閱讀 812評論 0 13