JavaScript中奇葩的假值示例应用

通常在以下语句结构中需要判断真假

if分支语句
while循环语句
for里的第二个语句




代码如下:

if (boo) {
// do something
}

while (boo) {
// do something
}

JavaScript中有6个值为“假”,这六个值是

false
null
undefined
0
'' (空字符串)
NaN

这里面false本身是布尔类型,其它5个则不是。

除了这6个外,其它均为“真” ,包括对象、数组、正则、函数等。注意 '0'、'null'、'false'、{}、[]也都是真值 。

虽然这六个值都为“假”,它们之间并非都相等


代码如下:

console.log( false == null ) // false
console.log( false == undefined ) // false
console.log( false == 0 ) // true
console.log( false == '' ) // true
console.log( false == NaN ) // false

console.log( null == undefined ) // true
console.log( null == 0 ) // false
console.log( null == '' ) // false
console.log( null == NaN ) // false

console.log( undefined == 0) // false
console.log( undefined == '') // false
console.log( undefined == NaN) // false

console.log( 0 == '' ) // true
console.log( 0 == NaN ) // false

对于“==”,以上得出下列结论

false 除了和自身比较为true外,和0,'' 也为true
null只和undefined比较时为true, 反过来undefined也仅和null比较为true,没有第二个
0除了和false比较为true,还有一个空字符串 ''
空字符串''出了和false比较为true,还有一个数字0

(0)

相关推荐

  • JavaScript中奇葩的假值示例应用

    通常在以下语句结构中需要判断真假 if分支语句 while循环语句 for里的第二个语句 如 复制代码 代码如下: if (boo) { // do something } while (boo) { // do something } JavaScript中有6个值为"假",这六个值是 false null undefined 0 '' (空字符串) NaN 这里面false本身是布尔类型,其它5个则不是. 除了这6个外,其它均为"真" ,包括对象.数组.正则.函

  • JavaScript中removeChild 方法开发示例代码

    1. 概述 删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置. 当你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新 // 拿到待删除节点: var self = document.getElementById('to-be-removed'); // 拿到父节点: var parent = self.parentElement; // 删除: var removed = parent.remove

  • JavaScript中事件委托的示例详解

    目录 事件流 事件委托 结尾 大家好,我是前端西瓜哥.今天我们来认识一下事件委托. 所谓事件委托,就是将原本应该在当前元素绑定的事件,放到它的祖先元素上,让祖先元素来委托处理. 事件流 事件流指从页面中接收事件的顺序,也可理解为事件在页面中传播的顺序. 事件流由两阶段组成: 捕获事件 冒泡事件 我们通常用 addEventListener 给元素添加事件: document.querySelector('#card')addEventListener( 'click', function (ev

  • javascript中typeof的使用示例

    复制代码 代码如下: <html> <head> <title>javascript中typeof的使用</title> <script> //1.基本类型 var x = 123; var y = "abc"; var z = true; //alert(typeof x);//number //alert(typeof y);//string //alert(typeof z);//boolean //2.引用类型,类型是

  • JavaScript中创建对象和继承示例解读

    对象创建: 当一个函数对象被创建时候,Function构造器产生的函数对象会运行类似这样的代码: 复制代码 代码如下: this.prototype={constructor:this}; 假设函数F F用new方式构造对象时,对象的constructor被设置成这个F.prototype.constructor 如果函数在创建对象前修改了函数的prototype,会影响创建出来对象的construtor属性 如: 复制代码 代码如下: function F(){}; F.prototype={

  • javascript中字符串的定义示例代码

    复制代码 代码如下: <html> <head> <title>javascript中字符串的定义</title> <script> //定义字符串 //第一种 var str = new Array(); alert(str);//空字符 //第二种 var str2 = new Array("hello"); alert(str2);//hello //第三种 /* String 对象可用字符串文字显式创建. 用这种方法创

  • JavaScript中实现Map的示例代码

    不废话了,直接贴代码了. 代码一: var map=new Map(); map.put("a","A");map.put("b","B");map.put("c","C"); map.get("a"); //返回:A map.entrySet() // 返回Entity[{key,value},{key,value}] map.containsKey('kevin'

  • javascript 中that的含义示例介绍

    你可能会发现别人写的代码中有这么一句:var that = this;,这代表什么意思呢? 在javascript中,this代表的是当前对象. var that=this就是将当前的this对象复制一份到that变量中.这样做有什么意义呢? 复制代码 代码如下: $('#zhetenga').click(function(){ //this是被点击的#zhetenga var that = this; $('.zhetenga').each(function(){ //this是.zheten

  • JavaScript中引用vs复制示例详析

    前言 好像一般很少人讲到js中的引用和复制,不过弄清楚这个概念可以帮助理解很多东西 先讲一下很基础的东西,看看js中几种数据类型分别传的什么 引用:对象.数组.函数 复制:数字.布尔 字符串单独说明,因为它的特殊性,无法确定是传递引用还是复制数值(因为字符串的值是没法改变的,所以纠结这个问题也是没意义的)但是用于比较的时候显然是属于传值比较 下面来一起看看详细的介绍吧 首先我们看下面这个例子: let age = 18; let age2 = age; console.log(age, age2

  • JavaScript中事件冒泡机制示例详析

    什么是冒泡? DOM事件流(event  flow )存在三个阶段:事件捕获阶段. 处于目标阶段. 事件冒泡阶段. 事件捕获(event  capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件. 事件冒泡(dubbed  bubbling):与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点. dom标准事件流的触发的先后顺序为:先捕

随机推荐