if|if (xx) 判断
number、string、boolean
var a = 5
if(a){
console.log('true')// true
}
a = 1
if(a){
console.log('true')// true
}
a = 0
if(a){// false
console.log('true')
}
a = -1
if(a){
console.log('true')//true
}
a = NaN
if(a){//false
console.log('true')
}
number 有两个假值,0 NaN
if ("hello") {
console.log("hello")// hello
}if ("") { //false
console.log('empty')
} if (" ") {
console.log('blank') // blank
}
string 有一个假值,'' (空字符串)
if(undefined){ //false
consoel.log(1)
}
if(null){ //false
console.log(2)
}
undefined 和 null 都是假值
// 如下代码输出什么?
if ([0]) {
console.log('array') // array
}if('0.00'){
console.log('0.00') // 0.00
}
if([]){
console.log('空数组') // 空数组
}
var fn = function(){
return fn
}
if(fn()){
console.log('函数')// 函数
}
var obj ={}
if(obj){
console.log('空对象') // 空对象
}
可以看出js有六个假值,0,NaN,''(空字符串),false,undefined,null
== 判断 相等运算符(==),比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。
看个例子
"" == 0// true
" " == 0// true
"" == true// false
"" == false// true
" " == true// false
再看个例子
!" " == true// false
!" " == false// true
"hello" == true// false
"hello" == false // false
"0" == true// false
"0" == false// true
"00" == false// true
"0.00" == false// true
文章图片
下面的例子,你能做对几道
undefined == null//题目1
true == {}//题目2
[] == true//题目3
var obj = {
a: 0,
valueOf: function(){return 1}
}
obj == "[object Object]"//题目4
obj == 1//题目5
obj == true//题目6
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果。
上题答案
1.true 2. false 3.false 4.false 5.true 6.true
【if|if (xx) 判断】不建议使用相等运算符(==),类型转化太难记了,建议使用严格相等运算符(===),严格相等运算符不做类型转化,是不是好用多了
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 八、「料理风云」