如果第一个括号内的条件导致错误:
function fd(t) {
let output = '';
if (t >= 41) {
let mns = 45
(mns === 1) ? (output = "true") : (output = "false");
}
return output;
}
console.log(fd(65));
错误消息:“ReferenceError:无法在初始化之前访问词法声明'mns'”
如果
条件没有第一个括号工作正常:
function fd(t) {
let output = '';
if (t >= 41) {
let mns = 45
mns === 1 ? (output = "true") : (output = "false");
}
return output;
}
console.log(fd(65));
谁能给我解释一下这种行为吗?
这是因为let
声明尚未结束。要结束声明,请使用
或声明为
var
而不是let。
function fd(t) {
let output = '';
if (t >= 41) {
let mns = 45; // note the semicolan or declare it as var
(mns === 1) ? (output = "true") : (output = "false");
}
return output;
}
console.log(fd(65));
在让mns=45
结束语句后,您缺少一个分号。如果没有分号来结束语句,就像试图将(mns===1)
作为参数传递给let
语句一样。这就像两行合并成一行:let mns=45(mns===1)?(输出="true"):(输出="false");
第二个函数之所以有效,是因为msn===1周围没有括号,所以它不会尝试将其作为参数传递给let语句。
作为一般规则,始终记住在每个JavaScript语句后添加分号。
function fd(t) {
let output = '';
if (t >= 41) {
let mns = 45;
(mns === 1) ? (output = "true") : (output = "false");
}
return output;
}
console.log(fd(65));
问题内容: Netbeans说我的三元运算符不是语句。怎么会? 我尝试过if / then / else对应项,并且工作正常: 问题答案: 三元运算符中的语句必须是非空的。他们需要退货。
问题内容: 我正在创建一个javascript正则表达式来匹配搜索引擎字符串中的查询。我在轮换方面遇到问题。我有以下正则表达式: 我希望能够匹配除’wd’之外还有字符串’word’或’qw’的字符串,但是我尝试的所有尝试都不成功。我以为我可以做以下事情: 但它似乎不起作用。 问题答案: 替换为。 表示字符集,表示逻辑分组。
问题内容: 这段代码有什么问题: 问题答案: 三元运算符不能有不返回值或方法的语句。您需要具有返回值的语句。 您需要重写它。
问题内容: 我在开发过程中注意到了这一点。 为什么三元运算符不能在方法参数中使用?这显然是或(其他)。 问题答案: 表达式的类型为,因为这是()和()的常见类型。 您没有任何接受的方法。因此,编译错误。
targetPixValList是一个包含Double对象的列表,它也包含列表中连续位置的相似值,当我尝试使用Code_1比较两个Double值时,cnt返回零。当我使用code_2时,cnt返回值。 列表的类型是 为什么“==”运算符不能与Double一起使用? 代码_1: Code_2:
此代码: 我需要注意(我想您可能需要这些信息),和都是从派生出来的,所以它们可以说是兄弟。 谢谢