我在JS中遇到了一个奇怪的问题,这取决于我的变量是否在同一行中声明和分配。也许有人能解释为什么会发生这种事。
当我运行这段代码(变量在相同的行中声明和赋值)时,它不会返回任何内容,这是有意义的,因为没有返回语句。
var hero = "lame";
var badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
但是,当我运行这段代码(变量在不同的行上声明和赋值)时,它返回“强”,这是要分配的最后一个变量,即使没有return语句。为什么会这样呢?
var hero, badguy;
hero = "lame";
badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
谢谢你的帮忙!
发布于 2015-08-12 09:19:28
在JavaScript (以及其他一些语言)中,当您执行赋值时,该赋值的值将自动返回。因此,您可以看到控制台正在记录它。奇怪,我在网上找不到合适的参考资料。这是我能找到的最好的:http://www.sitepoint.com/assignment-inside-a-condition/
发布于 2015-08-11 19:51:33
你能实现你的函数声明和函数调用吗?
我在浏览器控制台中尝试下面的代码,它们都返回未定义的内容。
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
https://stackoverflow.com/questions/31955420
复制相似问题