原文地址(翻译练手)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