最新国产好看的视频,伊人天堂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ù)內部如果用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"相當于"var a;a=1",即先聲明,后賦值,"a=1"相當于把a重新賦值了,自然就是number!

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

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

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

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

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

//上邊的代碼相當于
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>塊中getName()函數(shù)未定義,匿名函數(shù)又不會向上提升

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

相關文章

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

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

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

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

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

    微信小程序中時間戳和日期的相互轉換問題

    這篇文章主要介紹了微信小程序中時間戳和日期的相互轉換問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    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)圖片

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

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

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

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

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

最新評論

响水县| 红安县| 宁晋县| 德保县| 鄂托克前旗| 凯里市| 瓦房店市| 昌江| 元江| 蓬安县| 积石山| 涟源市| 锡林郭勒盟| 安达市| 佛冈县| 南开区| 彭水| 手机| 蓝山县| 高要市| 湛江市| 康定县| 东源县| 南澳县| 梓潼县| 昌宁县| 汉中市| 千阳县| 祁东县| 恩平市| 梨树县| 乌拉特后旗| 伊宁县| 任丘市| 定西市| 庄浪县| 罗甸县| 漯河市| 玛沁县| 龙泉市| 昆明市|