原文地址(翻譯練手)javascript
2017年12月14日java
昨天,咱們學習了關於JavaScript做用域。今天,咱們來學習如何去在不一樣類型的做用域中更新變量。bash
用前綴var來定義一個新的變量。省略var會更新一個存在的變量的值。函數
關於這方面有兩條建議:post
你能夠在函數裏面定義一個和全局做用域或者詞法做用域中同名的變量,也不會對那個變量形成影響。學習
var sandwich = 'tuna';
var logSandwich = function () {
// logs "turkey"
// Does NOT update the global `sandwich` variable
var sandwich = 'turkey';
console.log(sandwich);
};
logSandwich();
// logs "tuna"
console.log(sandwich);
複製代碼
若是你省略了開頭的var,你能夠在內部函數內部修改全局做用域或者詞法做用域中的那個變量。ui
var sandwich = 'tuna';
// logs "tuna"
console.log(sandwich);
var logSandwich = function () {
// logs "tuna"
console.log(sandwich);
// Updates `sandwich` in the global scope
sandwich = 'turkey';
// logs "turkey"
console.log(sandwich);
};
logSandwich();
// logs "turkey"
console.log(sandwich);
複製代碼
明天,咱們會學不在全局做用域中保存變量(and爲何你要這麼作)。spa