js中變數作用域問題
(1)塊作用域
程式碼如下:
<script>
window.onload = function()
{
var sum = 0;
for (var i = 0;i <10;i++)
{
sum += i;
}
alert(sum);
alert("i="+i);
}
</script>
執行結果居然可以“alert(i)”!!!!如下所示:
ES6 改變了現狀, 引入了新的 let 關鍵字, 提供了除 var 以外的另一種變數宣告方式。let 關鍵字可以將變數繫結到所在的任意作用域中(通常是 { .. } 內部)。 換句話說, let為其宣告的變數隱式地了所在的塊作用域。
因此修改為一下內容:
<script>
window.onload = function()
{
var sum = 0;
for (let i = 0;i <10;i++)
{
sum += i;
}
alert(sum);
alert("i="+i);
}
</script>
執行結果如下:
(2)函式作用域
<script>
window.onload = function()
{
var sum = 0;
for (let i = 0;i <10;i++)
{
sum += i;
}
//alert(sum);
show(sum);
alert("i="+i);
}
function show(num)
{
alert(num);
alert(sum);
}
</script>
執行結果如下:
相關文章
- JS變數作用域JS變數
- Shell變數的作用域問題變數
- js作用域(變數提升,預解析)例題JS變數
- golang變數作用域問題-避免使用全域性變數Golang變數
- 變數、作用域和記憶體問題變數記憶體
- 關於JS中變數的作用域-例項JS變數
- javascript:變數、作用域和記憶體問題JavaScript變數記憶體
- javascript變數、作用域和記憶體問題......JavaScript變數記憶體
- 變數的作用域--js閉包變數JS
- JavaScript中變數和作用域JavaScript變數
- java中變數的作用域Java變數
- 理解 Javascript 中變數的作用域JavaScript變數
- 第4章 變數、作用域和記憶體問題變數記憶體
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- SCSS 變數作用域CSS變數
- golang變數作用域Golang變數
- 請問一下jsp;useBean中request作用域問題JSBean
- Go 中的動態作用域變數Go變數
- 注意for迴圈中變數的作用域變數
- 原型模式故事鏈(5)--JS變數作用域、作用域鏈、閉包原型模式JS變數
- Go 程式碼塊與作用域,變數遮蔽問題詳解Go變數
- 一個Js方法作用域的問題JS
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- python變數與變數作用域Python變數
- JS 底蘊之 變數、作用域和垃圾回收JS變數
- 詳解 JS 變數、作用域及記憶體JS變數記憶體
- PL/SQL變數作用域SQL變數
- lisp 變數的作用域Lisp變數
- LoadRunner變數作用域變數
- 變數物件與作用域鏈變數物件
- JavaScript之變數及作用域JavaScript變數
- Go 語言變數作用域Go變數
- JavaScript變數作用域之殤JavaScript變數
- JS-作用域題目JS
- JS中的跨域問題JS跨域
- 細談sass和less中的變數及其作用域變數
- 現代 JavaScript 的變數作用域JavaScript變數
- Go語言中的變數作用域Go變數