为什么除了0以外的所有数字都会在JavaScript中传递if语句?
这是我一直想知道的事情。根据MDN,在JavaScript中,“如果指定的条件为true,if语句将执行一条语句”。那么,为什么这项声明获得通过呢为什么除了0以外的所有数字都会在JavaScript中传递if语句?,javascript,Javascript,这是我一直想知道的事情。根据MDN,在JavaScript中,“如果指定的条件为true,if语句将执行一条语句”。那么,为什么这项声明获得通过呢 var a = 7; if( a ) { alert('true'); } else { alert('false'); } 这个变量既不是真的也不是假的,那么为什么它会提示“真”而不是跳过整个if语句呢?在计算机中,一切都是数字。布尔值,通常只有一位:0或1 var a = 7; if( a ) { alert('true
var a = 7;
if( a ) {
alert('true');
} else {
alert('false');
}
这个变量既不是真的也不是假的,那么为什么它会提示“真”而不是跳过整个if语句呢?在计算机中,一切都是数字。布尔值,通常只有一位:0或1
var a = 7;
if( a ) {
alert('true');
} else {
alert('false');
}
但计算机使用不止一位来存储数据,所以布尔值大于0或1,但也大于255、42或25,同时还必须通过一个简单的测试
因此,按照惯例,0为假,任何其他值均为真。“为真”表示“计算结果为真值的表达式“不”与布尔对象true
”完全相等
形式语言可以找到
让exprRef作为计算表达式的结果如果 ToBoolean(GetValue(exprRef))为true,则返回 评估第一个语句
否则,
返回 评估第二个语句 在JavaScript中,if(var)不仅计算布尔值,还计算已定义/初始化或未定义的变量
例如,如果在Javascript中变量
未定义
或空
,则如果
将其计算为假
,则以下值始终为假:
false
0 (zero)
"" (empty string)
null
undefined
NaN (a special Number value meaning Not-a-Number!)
所有其他值都是真实值,包括“0”(引号中为零)、“false”(引号中为false)、空函数、空数组和空对象
如果要在不进行类型转换的情况下与true进行比较,请尝试
a===true
如前所述,它对变量执行布尔测试。
布尔值是二进制的;也就是说,唯一可能的值是0和1,其中true=1,false=0
您硬编码到if语句中的值是7=0111,只需其中一个数字为“1”即可通过测试
它与字母的工作方式相同,除了if语句将字母从ASCII转换为二进制:“A”=0100 0001(在ASCII中注册为65)。另一方面,没有输入将返回假语句。因为它是这样定义的。只有以下语句返回假语句。false,0,“,null,未定义,Nanah我不知道“falsy”是个东西。谢谢