javascript - 任何人都可以帮助我解决 var 在 javascript 中的这种奇怪行为吗?
问题描述
水果变量如何在 if 块中被覆盖,但颜色变量在功能块中不会被覆盖?
var fruit = "apple";
if(fruit){
var fruit = "mango";
console.log(fruit); // mango
}
console.log(fruit); // mango
var color = "blue";
function displayColor(){
var color = "red";
console.log(color);
}
displayColor(); // red
console.log(color); // blue
解决方案
不同之处在于该函数创建了一个本地范围。因此,它在函数范围内创建一个变量,并在函数完成时将其丢弃,保持 GLOBAL 颜色变量不变。
If 语句不创建范围,因此您只需在全局范围内重新定义 fruit 变量。
推荐阅读
- linux - .NET Core - 为什么 AsyncLocal<> 参考构建在 Windows 上,而不是 Linux (netstandard2.0)
- java - 如何从 Java 中的这个 JSON 中获取名字姓氏和 id 喜欢使用 Gson google json 库
- c# - 如何将 List 转换为从 List 继承的类型
? - javascript - 在 jVectorMap 中的 JavaScript 函数触发器中显示模式
- javascript - 如何创建一个Countup计时器Angular 5
- c# - Zen Barcode Generator 生成错误的code128
- r - 如何使用 dplyr 管道将额外参数传递给 purrr::map
- swift - 导航栏标题中的多个叠加图像
- html - 通过 HTML 设置渐变百分比值
- javascript - 语义 UI 下拉“设置菜单”失败