現在的位置: 首頁 > web前端 > 正文

JavaScript變量有幾種?JavaScript有沒有變量作用域

2020年06月15日 web前端 ⁄ 共 2194字 ⁄ 字號 評論關閉

  變量的作用域,是指變量的作用范圍。也就是說,變量只在特定范圍有效,超出該范圍無效。下面學步園小編來講解下JavaScript變量有幾種?JavaScript有沒有變量作用域?

  JavaScript變量有幾種

  在JavaScript中,有兩種變量,全局變量和局部變量:

  全局變量:可以在腳本中的任何位置被調用,全局變量的作用域是當前文檔中整個腳本區域。

  局部變量:只能在此變量聲明語句所屬的函數內部使用,局部變量的作用域僅為該函數體。

  聲明變量時,要根據編程的目的決定將變量聲明為全局變量還是局部變量。一般而言,保存全局信息(如用戶信息、菜單選項等)的變量需聲明為全局變量,而保存臨時信息(如待輸出的格式字符串、數學運算中間變量等)的變量則聲明為局部變量。

  JavaScript變量作用域有哪些

  點擊第二段文本,JavaScript會在全局內尋找total變量,如果找到,就返回它的值;找不到,將會引發錯誤。顯然,已經找到,它的值是100。這里的total變量就是全局變量。

  可以發現,在add()函數內部對total變量賦值,并未影響外部的total變量。

  【例2-2】對【例2-1】稍作修改,去掉add()函數內部對total變量的聲明。如下所示:

  html>

  head>

  title>局部變量和全局變量/title>

  /head>

  body>

  script type="text/javascript">

  var total=100; //全局變量

  function add(num){

  total=2*num;

  return total;

  }

  /script>

  p onclick="alert(add(100));">這已不是局部變量/p>

  p onclick="alert(total);">顯示全局變量/p>

  /body>

  /html>

  保存并運行代碼,點擊兩段文本,都顯示 200 。

  JavaScript有沒有變量作用域

  上述結果表明,JavaScript在add()函數內部沒有找到total變量,又到函數外部尋找,找到后對它賦值,覆蓋掉了原來的值。

  說明:JavaScript是從小范圍到大范圍尋找變量的。如果在當前范圍內沒有找到相應的變量,就會一級一級向上級范圍去尋找,找到后,就對它進行操作,找不到將會引發錯誤。

  注意:任何情況下,JavaScript絕對不會從大范圍向小范圍尋找變量。如果在函數外部沒有找到變量,絕對不會去函數內部尋找。

  在函數內部聲明全局變量

  前面已經講到,聲明變量時要使用 var 關鍵字;但是,也可以不使用。

  無論在函數外部還是內部,不使用 var 關鍵字聲明的變量都為全局變量。

  這就給我們提供了兩種聲明全局變量的方法:

  在函數外部使用 var 關鍵字聲明;

  在任何地方不使用 var 關鍵字聲明。

  【例2-3】對【例2-2】稍作修改,去掉add()函數外部對total變量的聲明。如下所示:

  html>

  head>

  title>局部變量和全局變量/title>

  /head>

  body>

  script type="text/javascript">

  function add(num){

  total=2*num; // total 為全局變量

  return total;

  }

  /script>

  p onclick="alert(add(100));">這已不是局部變量/p>

  p onclick="alert(total);">顯示全局變量/p>

  /body>

  /html>

  保存并運行代碼,點擊兩段文本,都顯示 200 。

  上述結果表明,在add()函數內部聲明的total變量,已不再是局部變量,它在全局范圍內都是有效的。

  注意:

  聲明變量時請盡量使用 var 關鍵字,這對程序結構有很大的幫助。

  盡量不要在函數內部聲明全局變量,也不要在函數內部和外部聲明同名變量,這兩種情況都會造成變量的混淆。

  只有在函數內使用 var 關鍵字聲明的變量為局部變量

  這里需要強調的是,只有在函數內部使用 var 關鍵字聲明的變量才是局部變量,在其它“語句塊”內使用 var 關鍵字聲明變量一般是全局變量,if...else...選擇結構和for循環結構都是如此。

  【例2-4】在for循環內部聲明變量。

  html>

  head>

  title>在for循環內部聲明變量/title>

  /head>

  body>

  script type="text/javascript">

  for(var i=0;i=5;i++){

  var x=100;

  }

  /script>

  p onclick="alert(i);">顯示 i 變量的值/p>

  p onclick="alert(x);">顯示 x 變量的值/p>

  /body>

  /html>

  點擊第一段文本,顯示 6 ;點擊第二段文本,顯示 100 。

  上述結果表明,在for循環內部聲明的 i 和 x 并不是局部變量,而是全局變量。

  總結:除了函數,JavaScript是沒有塊級作用域的。

  以上就是關于“JavaScript變量有幾種?JavaScript有沒有變量作用域”的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平臺!

抱歉!評論已關閉.

奔驰宝马破解版下载 重庆幸运农场怎么玩才能稳赚 最安全的理财投资平台 今天上海时时乐开奖走势图 云南十一选五走势图! 福建体彩31选7彩民论坛 炒股配资平台哪个好 内蒙古快三带线走势图 甘肃十一选五内部推荐 今天快三开奖江西预测 股票指数怎么计算 内蒙古11选五开奖结果 2020马会资料精选免费大全 贵州快3走势图今天 内蒙古十一选五形态走势图一定牛 一分彩开奖号码 内蒙体彩11先5开奖号码