我是编程方面的新手,虽然我理解这些概念,但在实践中却遇到了一些麻烦。例如,我理解了null和undefined值的概念......和布尔运算符......一切都很好!!!但是当谈到简单的运动时,我会陷入困境。 例如,我得到了这个:
编写一个计算x的表达式,只要x不为null;如果x为null,则表达式应求值为100.当没有为其赋值时,x等于null(例如var x;),但您也可以为其赋值null(var x = null;)。测试你的表达式的几个不同的x值,包括null - 它的行为是否与你期望的一样?
这就是我所做的:
var x ;
myExpression = (x - 50 + 20 + 30);
if (x === null) {
myExpression === true;
}
else if (x !== null) {
myExpression === 50;
}
根本不适合我,我知道不是。我认为我真正的问题是理解问题本身。你能帮我理解一下吗?
非常感谢!
答案 0 :(得分:0)
你这太难了。表达式:
((x == null) ? 100 : x)
使用示例:
y = ((x == null) ? 100 : x);
你的任务说:
编写一个计算x的表达式,只要x不为null;如果x为null,则表达式应评估为100.
表达式是评估值的东西。数字6
是一个表达式。变量,如x
是一个表达式。可以使用数学运算符构建更复杂的表达式,例如6 + x
等。
三元(或“问号”)运算符是构建表达式的一个非常强大的工具。
条件? value1:value2
这就像“迷你功能”一样:
function questionmark ( condition ) {
if ((condition) != 0) {
return value1;
} else {
return value2;
}
}
所以:
(x == null) ? 100 : x
如果x
为null
,则评估为100,否则为x
。
将此表达式视为使用100作为某些内容的默认值 - 例如,我们将执行x
次的操作,但如果他们没有告诉我们x
我们将会做100次。
你应该看到
(x != null) ? x : 100
是一个等价的表达式。
在JavaScript中,有更简洁(“更棘手”)的方式来编写这种表达式。我在这里包含它们只是为了你可以识别它们,如果你在代码中看到它们:
(x ? x : 100)
(x || 100)