最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談JavaScript中變量和函數(shù)聲明的提升

 更新時間:2016年08月09日 10:28:38   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談JavaScript中變量和函數(shù)聲明的提升。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

現(xiàn)象:

1. 在JavaScript中變量和函數(shù)的聲明會提升到最頂部執(zhí)行。

2. 函數(shù)的提升高于變量的提升。

3. 函數(shù)內(nèi)部如果用var聲明了相同名稱的外部變量,函數(shù)將不再向上尋找。

4. 匿名函數(shù)不會提升。

5. 不同<script>塊中的函數(shù)互不影響。

例子:

函數(shù)聲明提升高于變量聲明

//同時聲明變量a和函數(shù)a
var a;
function a() {} 
alert(typeof a); //顯示的是"function",初步證明function的優(yōu)先級高于var。

//先聲明函數(shù)后聲明變量,證明上邊的例子不是function覆蓋了變量
function a() {}
var a; 
alert(typeof a); //顯示的仍是"function",而不是"undefined",即function的優(yōu)先級高于var。

//聲明了變量的同時賦值
function a() {}
var a = 1;
alert(typeof a); //number,此時不是function了。
//說明:"var a=1"相當(dāng)于"var a;a=1",即先聲明,后賦值,"a=1"相當(dāng)于把a(bǔ)重新賦值了,自然就是number!

函數(shù)內(nèi)部用var定義了和外部相同的變量,函數(shù)將不再向上找外部的變量

var value = 'hello';
function show() {
  alert(value);
  if (!value) {
    var value = 'function';
  }
  alert(value);
}
show() //此處調(diào)用函數(shù)依次彈出 "undefined", "function"

//上例相當(dāng)于var value = 'hello';
function show() {
  var value; //注意這行
  alert(value);
  if (!value) {
    value = 'function'; //這行去掉var
  }
  alert(value);
}
show()//1.如果上列中show內(nèi)部定義value未用var,則會用到外部的變量,彈出"hello", "hello"。 
//2.如果函數(shù)內(nèi)部未定義value,也能獲取到外部的value值。

匿名函數(shù)不會向上提升

getName()
var getName = function () {
  alert('closule')
}
function getName() {
  alert('function')
}
getName()

//上邊的代碼相當(dāng)于
function getName() { //函數(shù)向上提升
  alert('function')
}
getName()
var getName = function () {
  alert('closule')
}
getName()

//代碼執(zhí)行分別彈出 "function", "closule"

不同<script>塊中的函數(shù)互不影響

<script>
  getName()
  var getName = function () {
    alert('closule')
  }
<script>
<script>
  function getName() {
    alert('function')
  }
<script>

//代碼執(zhí)行報錯:TypeError: getName is not a function
//因為第一個<script>塊中g(shù)etName()函數(shù)未定義,匿名函數(shù)又不會向上提升

以上這篇淺談JavaScript中變量和函數(shù)聲明的提升就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 理解javascript中try...catch...finally

    理解javascript中try...catch...finally

    這篇文章主要幫助大家理解javascript中try...catch...finally,從淺入深,一步步掌握javascript中try...catch...finally的使用方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • JS中如何輕松遍歷對象屬性的方式總結(jié)

    JS中如何輕松遍歷對象屬性的方式總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于在JS中如何輕松遍歷對象屬性的方式,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 微信小程序中時間戳和日期的相互轉(zhuǎn)換問題

    微信小程序中時間戳和日期的相互轉(zhuǎn)換問題

    這篇文章主要介紹了微信小程序中時間戳和日期的相互轉(zhuǎn)換問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • 封裝運動框架實戰(zhàn)左右與上下滑動的焦點輪播圖(實例)

    封裝運動框架實戰(zhàn)左右與上下滑動的焦點輪播圖(實例)

    下面小編就為大家?guī)硪黄庋b運動框架實戰(zhàn)左右與上下滑動的焦點輪播圖(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • js 自帶的 map() 方法全面了解

    js 自帶的 map() 方法全面了解

    下面小編就為大家?guī)硪黄猨s 自帶的 map() 方法全面了解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • js仿支付寶填寫支付密碼效果實現(xiàn)多方框輸入密碼

    js仿支付寶填寫支付密碼效果實現(xiàn)多方框輸入密碼

    這篇文章主要介紹了js仿支付寶填寫支付密碼效果實現(xiàn)多方框輸入密碼的功能,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JS判斷字符串字節(jié)數(shù)并截取長度的方法

    JS判斷字符串字節(jié)數(shù)并截取長度的方法

    這篇文章主要介紹了JS判斷字符串字節(jié)數(shù)并截取長度的方法,涉及JavaScript針對頁面元素與字符串的動態(tài)操作技巧,需要的朋友可以參考下
    2016-03-03
  • 使用p5.js臨摹動態(tài)圖片

    使用p5.js臨摹動態(tài)圖片

    這篇文章主要為大家詳細(xì)介紹了使用p5.js臨摹動態(tài)圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • JS實現(xiàn)骰子3D旋轉(zhuǎn)效果

    JS實現(xiàn)骰子3D旋轉(zhuǎn)效果

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)骰子3D旋轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 購物車前端開發(fā)(jQuery和bootstrap3)

    購物車前端開發(fā)(jQuery和bootstrap3)

    針對購物車的操作,進(jìn)行產(chǎn)品數(shù)量的增加減少,刪除購物車中產(chǎn)品項,本文使用JQuery1.11和bootstrap3進(jìn)行購物車開發(fā),感興趣的小伙伴們
    2016-08-08

最新評論

阿克| 缙云县| 祁东县| 宁陕县| 临颍县| 阿坝| 巴里| 玉林市| 安平县| 农安县| 昆山市| 德安县| 城口县| 桐柏县| 宜黄县| 锡林浩特市| 松潘县| 南乐县| 江川县| 台山市| 维西| 益阳市| 沛县| 奎屯市| 舞阳县| 东城区| 津市市| 大同县| 阳江市| 大厂| 大埔区| 湛江市| 喀喇沁旗| 合作市| 镇雄县| 辉南县| 来凤县| 图木舒克市| 凤冈县| 怀柔区| 绍兴市|