当变量在不同的行上声明和赋值时返回最后赋值
Returning Last Value Assigned When Variables are Declared and Assigned on Different Lines
我在JS中遇到了一个奇怪的返回问题,这取决于我的变量是否在同一行中声明和分配。也许有人能解释一下为什么会这样。
当我运行这段代码时(变量在同一行中声明和赋值),它不返回任何东西,这是有意义的,因为没有返回语句。
var hero = "lame";
var badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
然而,当我运行这段代码时(变量在不同的行上声明和赋值),它返回"strong",这是最后一个要赋值的变量,即使没有返回语句。为什么会这样?
var hero, badguy;
hero = "lame";
badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
谢谢你的帮助!
在JavaScript(以及其他一些语言)中,当您执行赋值时,该赋值的值将自动返回。因此,您可以看到控制台正在记录它。奇怪的是,我在网上找不到合适的参考资料。这是我能找到的最好的:http://www.sitepoint.com/assignment-inside-a-condition/
你能实现你的函数声明和函数调用吗?
我在浏览器控制台中尝试下面的代码,它们都返回未定义。
funcA = function() {
var hero = "lame";
var badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
}
funcB = function() {
var hero, badguy;
hero = "lame";
badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
}
funcA(); // undefined
funcB(); // undefined
相关文章:
- Javascript变量赋值|
- 无法为打字稿字典赋值
- Javascript-根据赋值顺序,按键合并对象数组
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何通过json对象数组为嵌套对象赋值
- 赋值后的回调函数
- ||(OR)运算符如何在赋值中工作
- 在 JavaScript 中,未声明的变量赋值可以在函数范围之外访问
- 我可以预先声明变量来解构对象的赋值吗?
- 在JavaScript中通过赋值声明变量类型的好处
- 如何检查变量是未定义的(已声明但未赋值)还是未声明的(不存在)
- 为什么javascript在删除时区分带有或不带有声明的赋值
- 在没有赋值的情况下用var在JavaScript中声明变量会消耗内存吗
- 声明没有赋值的变量有什么意义?
- JavaScript声明的全局变量不能在方法中赋值
- 为什么在这个var声明中将这个变量赋值给它自己?
- 当变量在不同的行上声明和赋值时返回最后赋值
- 如何在一个函数中声明一个全局变量赋值,并在另一个函数中使用
- 数组声明&赋值(JavaScript)
- “赋值到未声明的变量”时,使用 “for (i=0; .)".