if条件语句
JavaScript的威力在于可以根据人类给出的条件作出相应的决策判断,JavaScript使用条件语句来做判断。
条件语句(conditional statement)通过判断表达式的值来决定执行还是跳过某些语句,包括if语句和switch语句。
if语句
最常见的就是if语句。if语句的条件只能放在圆括号内,条件的结果永远是一个布尔值,即只能是true或flase。花括号中的语句不管有多少条,只有在条件的结果为true时才执行。
if (expression) {
statements;
}
if语句根据表达式的值改变程序流程。当expression的值为true时执行在其后的代码块,当expression的值为false时执行else后的代码块。
if (expression){
statements;
} else {
statements;
}
javascript中if/else匹配规则是:else总是和最近的if匹配
if (i == j){
if(j == k) {
console.log( 'i == k');
else {
console.log('i != j'); // error
}
if(xxx){
}
// 题目1:如下代码输出什么?
if ("hello") {
console.log("hello")
}
// 题目2:如下代码输出什么?
if ("") {
console.log('empty')
}
// 题目3:如下代码输出什么?
if (" ") {
console.log('blank')
}
// 题目4:如下代码输出什么?
if ([0]) {
console.log('array')
}
// 题目5:如下代码输出什么?
if('0.00'){
console.log('0.00')
}
括号里的表达式,会强制转为布尔值
原理
类型 | 结果 |
---|---|
undefined | flase |
null | false |
Boolean | 直接判断 |
number | +0, −0, 或者 NaN 为 false, 其他为 true |
string | 空字符串为 false,其他都为 true |
Object | true |
相等 ==
- 如果两个值类型相同,则执行严格相等的运算
- 如果两个值的类型不同
1.如果一个是null,一个是undefined,那么相等
2.如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
3.如果一个值是true/false则将其转为1/0比较
4.如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
5.其它就不相等了
x == y
x | y | 结果 |
---|---|---|
null | undefined | true |
Number | String | x==toNumber(y) |
Boolean | (any) | toNumber(x)==y |
Object | String or Number | toPrimitive(x)==y |
otherwise | otherwise | false |
toNumber
类型 | 结果 |
---|---|
undefined | NaN |
Null | 0 |
Boolean | true -> 1,flase -> 0 |
String | "abc" -> NaN, "123" -> 123 |
toPrimitive
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果
网友评论