Null和Booleans运算符

时间:2016-03-12 23:24:25

标签: javascript null expression boolean-expression

我是编程方面的新手,虽然我理解这些概念,但在实践中却遇到了一些麻烦。例如,我理解了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;
}

根本不适合我,我知道不是。我认为我真正的问题是理解问题本身。你能帮我理解一下吗?

非常感谢!

1 个答案:

答案 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

如果xnull,则评估为100,否则为x

将此表达式视为使用100作为某些内容的默认值 - 例如,我们将执行x次的操作,但如果他们没有告诉我们x我们将会做100次。

你应该看到

(x != null) ? x : 100

是一个等价的表达式。

在JavaScript中,有更简洁(“更棘手”)的方式来编写这种表达式。我在这里包含它们只是为了你可以识别它们,如果你在代码中看到它们:

(x ? x : 100)

(x || 100)