JS基礎(chǔ)隨筆

首先先看以下下面的一道面試題:

?

var num = 10;

fun();

functionfun()

{

  console.log(num);

  varnum =20;

}

在沒有學(xué)習(xí)之前我會直接回答為10,現(xiàn)在學(xué)習(xí)JavaScript中的預(yù)編譯概念知道了var關(guān)鍵字的提升概念以及function的聲明概念知道了以上代碼與下面代碼等量:

?

var num;//全局作用域 遇到var和function 提升

 function fun() {

   var num ;  //局部做用戶 遇到var 提升

   console.log(num);

   num =20;

 }

num = 10;

fun();

再看下面這道題:

?

//問題:為什么會出現(xiàn)下面的錯誤?

  //Uncaught TypeError:fnName is not a function

  console.log(fnName(1,2));

  varfnName = function(a,b) {

    returna + b;

  }

以上代碼等同于以下代碼:

?

var fnName;

  console.log(fnName(1,2));

  fnName = function(a,b) {

    returna + b;

  }

可以看到因?yàn)閒unction在等號右面所以只會對var進(jìn)行提升,從而會報(bào)“Uncaught TypeError:fnName is not a function”錯誤。

了解變量的作用域可以看以下代碼:

?

f1();

    console.log(c);

    console.log(b);

    console.log(a);

    function f1() {

      var a = b = c = 20;

      console.log(c);

      console.log(b);

      console.log(a);

    }

對于var a=b=c=20; 這類連續(xù)賦值,在局部作用域內(nèi)只會對a再聲明,而b、c的作用域?yàn)槿肿饔糜颉K灾挥腥肿饔糜騼?nèi)的a報(bào)錯為"Uncaught ReferenceError: a is not defined"。

以上這篇JS基礎(chǔ)隨筆(菜鳥必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關(guān)的對象共享這一特性,可以實(shí)現(xiàn)繼承,這種實(shí)現(xiàn)繼承的...
    magic_pill閱讀 1,128評論 0 3
  • 第一章: JS簡介 從當(dāng)初簡單的語言,變成了現(xiàn)在能夠處理復(fù)雜計(jì)算和交互,擁有閉包、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,761評論 0 6
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,811評論 1 45
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,246評論 0 38
  • 聽著楊教授的課,想著下學(xué)期我該如何實(shí)施教學(xué)才會更好?在兩個新的教育邊緣化群體中,我們學(xué)校占的比重最大的是留守...
    戀津子閱讀 329評論 0 1

友情鏈接更多精彩內(nèi)容