像这种非正常现象,**返回的结果可能不是布尔值**,是由于其他类型数据参与逻辑运算的时候,浏览器解析器会自动将这些数据“隐式转换”为布尔值进行逻辑运算。
通过
boolean() 隐式转换的
数字类型 布尔值
0 false
NaN
<br/>
其余数字 true
<br/>
<br/>
<br/>
字符串 布尔值
<br/>
<br/>
空字符串 false
<br/>
<br/>
非空字符串 true
<br/>
<br/>
<br/>
<br/>
未定义类型数值 布尔值
<br/>
<br/>
undefined false
<br/>
<br/>
空对象类型 布尔值
<br/>
<br/>
null false
在非布尔值进行&&运算时候
<br/>
<br/>
如果是false&&true运算,那么返回false的值
<br/>
如果是true&&true运算,那么返回第二个true的值。
<br/>
如果是true&&false运算,那么返回false值。
<p style="color:red">所以说就看第一个值是true还是false如果第一个值为false返回第一值,如果第一个值为true返回第二值。</p>
在非布尔值进行||运算时候
<br/>
<br/>
如果是false||true运算,那么返回true的值。
<br/>
如果是true||false运算,那么返回true的值。
<br/>
如果是true||true运算,那么返回第一个true的值。
<br/>
- javascript简介与书写规范
- alert()----警告框函数
- prompt() --提示框
- 控制台使用
- 数字字面量
- JS的数据类型
- Infinity和NaN两个特殊的数字字面量
- 字符串型字面量
- 变量
- 变量声明提升
- 数据类型的判断typeof
- 数字转换为字符串(+)
- 字符转换数字parseInt
- 数学运算符
- 数学对象Math
- 字符串隐士转换数据类型
- 比较运算符
- 其他类型数据参与比较
- 字符串类型参与比较运算
- 布尔类型逻辑运算符
- 其他类型数据参与布尔运算boolean()
- if多分支案例
- if嵌套语句
- 赋值运算符
- switch放布尔值方法
- 同名变量
- for循环经典案例
- function函数
- 函数 形参与实参
- 全局与局部变量
- 函数作用域
- 函数返回关键字return 使用
- 函数经典实战(水仙花与幸运数)
- 表达式函数
- 关键字形式函数与表达式函数区别
- 回调函数
- 函数递归现象
- 表达式函数IIFE
- 数组
- 数组length属性(获取数组元素个数)
- 数组Push方法与pop方法(添加与删除尾部元素)
- 数组unshift与 shift方法(添加与删除数组头部元素)
- 数组indexOf与includes方法
- 数组slice与splice方法
- 数组join 与reverse方法
- 字符串length属性(轮遍字符个数)
- 字符串toLowerCase与 toUpperCase(转换大小写)
- 字符串的search方法 split(分割字符串为数组)
- 字符串substring 与substr方法(裁剪出来生成新数组)
- 字符串replace与match方法
- 正则表达式
- JSON格式数据格式
- 字符串方法match结合正则使用
- search方法结合正则一起使用
- replace结合正则使用
- exec正则表达式方法
- test正则方法(返回布尔值)
- 字符集--正则表达式
- 修饰符--正则表达式
- 边界符--正则表达式
- 预定义类--正则表达式
- 量词--正则表达式
- 三元运算符与类数组对象arguments
- 正则表达式经典代码