本文主要是介绍JavaScript-Boolean数据类型及其比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Boolean数据类型,即布尔数据类型,只有两个值,分别是true
和false
。
- !: 一个叹号是取反,首先将值转化为布尔类型的,然后再取反
console.log(!3); // false -> 先把3转化为boolean 此时为true, 然后再取反为false
console.log(!0); // true -> 先把0转化为boolean 此时为false,然后再取反为true
- !!: 将其他的数据类型转化为boolean类型,相当于Boolean();
console.log(Boolean('derrick')); // trueconsole.log(!!'derrick'); // true
数据类型转化的规则:
- 如果只有一个值,判断这个值是真还是假,遵循:只有
0 NaN ''(空字符串) null undefined
这五个是假的(false),其余的都是真(true)。
console.log(!!0); // false
console.log(!!""); // false
console.log(!!undefined); // false
console.log(!!null); // false;
console.log(!!NaN); // false;
console.log(!![]); // true
- 如果是两个值比较是否相等,遵循这个规则:
val1 == val2 两个值可能不是同一个数据类型的,如果是 == 比较的话,会进行默认的数据类型转换。
- 对象 == 对象 -> 不同的对象永远不相等
console.log([] == []); // falseconsole.log(function(){} == function(){}); // false
- 对象 == 字符串 -> 先将字符串转化为字符串(调用toString的方法),然后在比较。
console.log([] == '');
// true -> [].toString() => '' -> '' == '' 为true// [] 转换为字符串 ''
console.log({} == '');
// false -> {}.toString() => '[Object Object]' -> false// {} 转换为字符串 '[Object Object]'
- 对象 == 布尔类型 对象先转化为字符串(toString()),然后字符串再转化为数字(Number()),布尔类型也转化为数字(true是1 false是0),最后让两个数字比较。
console.log([] == false); // true
// [] -> [].String() 为 '' -> Number('') 为 0,
// false -> 转为数字0,故相等。
- 对象 == 数字 对象先转化为字符串(toString()),然后字符串再转化为数字(Number()),然后让两个数字比较。
- 数字 == 布尔 布尔转化为数字,然后两个数字进行比较
console.log(2 == true); // false
- 数字 == 字符串 字符串转化为数字,然后两个数字进行比较
- 字符串 == 布尔 都转化为数字然后进行比较
- null == undefined 结果是true
- null或者undefined 和其他任何数据类型比较都不相等
- 除了 == 是比较,=== 也是比较,=== 比较时,是绝对比较。
val1 === val2
。 如果数据类型不一样,则两个比较肯定不相等。
console.log(1 === "1"); // false
console.log(1 === true); // false
这篇关于JavaScript-Boolean数据类型及其比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!