欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

現(xiàn)象:

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

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

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

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

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

例子:

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

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

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

//聲明了變量的同時(shí)賦值
function a() {}
var a = 1;
alert(typeof a); //number,此時(shí)不是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,則會(huì)用到外部的變量,彈出"hello", "hello"。 
//2.如果函數(shù)內(nèi)部未定義value,也能獲取到外部的value值。

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

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í)行報(bào)錯(cuò):TypeError: getName is not a function
//因?yàn)榈谝粋€(gè)<script>塊中g(shù)etName()函數(shù)未定義,匿名函數(shù)又不會(huì)向上提升

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

相關(guān)文章

最新評(píng)論