JavaScript 作用域實例分析

這篇文章主要介紹了JavaScript 作用域,結合實例形式分析了JavaScript函數作用域相關概念、原理及操作注意事項,需要的朋友可以參考下

本文實例講述了JavaScript 作用域。分享給大家供大家參考,具體如下:

JavaScript  作用域

1. JavaScript 以函數作爲作用域

JavaScript: 以函數做爲作用域

function func(){
  if(1==1){
    var name = 'xsk'
  }
  console.log(name);
}
func()

2. 函數作用域在函數未被調用之前,已經創建

JavaScript:函數作用域提前創建

function func(){
  if(1==1){
    var name = 'xsk'
  }
  console.log(name);
}

3. 函數的作用域在作用域鏈,並且也是在被調用之前創建

JavaScript:作用域鏈提前創建

示例一:

xo = "xsk";
function func(){
  var xo = "miy"
  function inner(){
    var xo = "nn"
    console.log(xo)
  }
  inner()
}
func()
// 輸出 nn

示例二:

xo = "xsk";
function func(){
  var xo = "miy"
  function inner(){
    console.log(xo)
  }
  return inner;
}
var ret = func()
// 輸出miy
// ret 相當於 inner()函數

示例三:

xo = "xsk";
function func(){
  var xo = "miy"
  function inner(){
    console.log(xo)
  }
  var xo = "tony"
  return inner;
}
var ret = func()
ret()
// 輸出tony

:作用域嵌套作用域被稱爲作用域鏈。

:查找變量會優先在本地作用域找,沒有在跳到下一級。

4. 函數內局部變量提前聲明

JavaScript:函數局部變量提前聲明

示例一:

function func(){
  console.log(xxoo);
}
func();
// 報錯

示例二:

function func(){
  console.log(xxoo);
  var xxoo = 'xsk'
}
func();
// 輸出 undefined
// 函數執行順序,誰在前面誰執行

(1)、JavaScript 當創建一個函數時,會自動生動生成作用域鏈。

(2)、生成作用域的同時會找到所有的局部變量提前聲明。(var 變量名)

(3)、爲賦值的局部變量默認爲undefined。

更多關於JavaScript相關內容可查看本站專題:《JavaScript常用函數技巧彙總》、《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章