在不同行上声明和分配变量时返回最后分配的值
Returning Last Value Assigned When Variables are Declared and Assigned on Different Lines
我在 JS 中遇到了一个关于 returns 的奇怪问题,这取决于我的变量是否在同一行中声明和赋值。也许有人可以解释为什么会这样。
当我 运行 这段代码(变量在同一行中声明和赋值)时,它 return 什么都没有,这是有道理的,因为没有 return 语句。
var hero = "lame";
var badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
但是,当我 运行 这段代码(变量在不同的行上声明和赋值)时,它 returns "strong",这是最后一个被赋值的变量,即使虽然没有 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.");
}
感谢您的帮助!
你能实现你的函数声明和函数调用吗?
我在浏览器控制台中尝试了下面的代码,它们都 return 未定义。
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(以及其他一些语言)中,当您进行赋值时,该赋值的值会自动返回。因此你可以看到它被控制台记录下来。奇怪,我在互联网上找不到对此的合适参考。这是我能找到的最好的:http://www.sitepoint.com/assignment-inside-a-condition/
我在 JS 中遇到了一个关于 returns 的奇怪问题,这取决于我的变量是否在同一行中声明和赋值。也许有人可以解释为什么会这样。
当我 运行 这段代码(变量在同一行中声明和赋值)时,它 return 什么都没有,这是有道理的,因为没有 return 语句。
var hero = "lame";
var badguy = "strong";
if (hero === "strong") {
if(badguy === "weak") {
console.log("Awesome you won!");
}
console.log("You did not win.");
}
但是,当我 运行 这段代码(变量在不同的行上声明和赋值)时,它 returns "strong",这是最后一个被赋值的变量,即使虽然没有 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.");
}
感谢您的帮助!
你能实现你的函数声明和函数调用吗?
我在浏览器控制台中尝试了下面的代码,它们都 return 未定义。
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(以及其他一些语言)中,当您进行赋值时,该赋值的值会自动返回。因此你可以看到它被控制台记录下来。奇怪,我在互联网上找不到对此的合适参考。这是我能找到的最好的:http://www.sitepoint.com/assignment-inside-a-condition/