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變數
- javascript:變數、作用域和記憶體問題JavaScript變數記憶體
- JavaScript中變數和作用域JavaScript變數
- java中變數的作用域Java變數
- 變數作用域變數
- 第4章 變數、作用域和記憶體問題變數記憶體
- 原型模式故事鏈(5)--JS變數作用域、作用域鏈、閉包原型模式JS變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- Go 程式碼塊與作用域,變數遮蔽問題詳解Go變數
- JS 底蘊之 變數、作用域和垃圾回收JS變數
- SCSS 變數作用域CSS變數
- python變數與變數作用域Python變數
- Go 中的動態作用域變數Go變數
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- JS-作用域題目JS
- C# 變數作用域C#變數
- JS中的跨域問題JS跨域
- 變數物件與作用域鏈變數物件
- JavaScript之變數及作用域JavaScript變數
- JavaScript 變數的作用域鏈JavaScript變數
- js的作用域、作用域鏈JS
- js作用域JS
- 一起學習JavaScript (4) 之變數、作用域和記憶體問題JavaScript變數記憶體
- js的作用域與作用域鏈JS
- js的作用域和作用域鏈JS
- Go語言中的變數作用域Go變數
- 現代 JavaScript 的變數作用域JavaScript變數
- Python 函式和變數作用域Python函式變數
- Day08-常量、變數、作用域變數
- 變數、作用域與記憶體變數記憶體
- js的哪些操作可以改變作用域鏈?JS
- JS作用域和變數提升看這一篇就夠了JS變數
- pytest 的 fixture 作用域問題
- js -- 跨域問題JS跨域
- js--執行上下文和作用域相關問題JS
- Python閉包區域性變數問題Python變數