国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

淺談JavaScript中變量和函數聲明的提升

2024-05-06 16:31:45
字體:
來源:轉載
供稿:網友

現象:

1. 在JavaScript中變量和函數的聲明會提升到最頂部執行。

2. 函數的提升高于變量的提升。

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

4. 匿名函數不會提升。

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

例子:

函數聲明提升高于變量聲明

//同時聲明變量a和函數avar a;function a() {} alert(typeof a); //顯示的是"function",初步證明function的優先級高于var。//先聲明函數后聲明變量,證明上邊的例子不是function覆蓋了變量function a() {}var a; alert(typeof a); //顯示的仍是"function",而不是"undefined",即function的優先級高于var。//聲明了變量的同時賦值function a() {}var a = 1;alert(typeof a); //number,此時不是function了。//說明:"var a=1"相當于"var a;a=1",即先聲明,后賦值,"a=1"相當于把a重新賦值了,自然就是number!

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

var value = 'hello';function show() {  alert(value);  if (!value) {    var value = 'function';  }  alert(value);}show() //此處調用函數依次彈出 "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.如果函數內部未定義value,也能獲取到外部的value值。

匿名函數不會向上提升

getName()var getName = function () {  alert('closule')}function getName() {  alert('function')}getName()//上邊的代碼相當于function getName() { //函數向上提升  alert('function')}getName()var getName = function () {  alert('closule')}getName()//代碼執行分別彈出 "function", "closule"

不同<script>塊中的函數互不影響

<script>  getName()  var getName = function () {    alert('closule')  }<script><script>  function getName() {    alert('function')  }<script>//代碼執行報錯:TypeError: getName is not a function//因為第一個<script>塊中getName()函數未定義,匿名函數又不會向上提升

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 申扎县| 久治县| 宝兴县| 巨野县| 政和县| 定南县| 南京市| 白河县| 观塘区| 昌图县| 遂川县| 霞浦县| 灵石县| 邯郸市| 剑河县| 顺义区| 天祝| 福海县| 札达县| 高要市| 柳河县| 莫力| 界首市| 仲巴县| 沿河| 宣城市| 赤壁市| 临城县| 扎囊县| 十堰市| 钦州市| 邹城市| 天门市| 金寨县| 天祝| 交口县| 新巴尔虎右旗| 临安市| 新化县| 砚山县| 松溪县|