最近在编写项目过程当中,发现本身对if语句判断的时候,在面对一些0、字符串为空的状况下,本身犹豫了那么几秒ide
甚至有时候还可怕的写下了丑陋的代码测试
if(str !== ''){// do some things}复制代码
今天,特地写了这篇文章记录下,让本身长长记性,同时后面有空去翻翻红宝书对象
考虑的状况有如下:字符串
if ('') { console.log('访问空字符串,能经过') }// 没输出复制代码
if (0) { console.log('访问0,能经过') }// 没输出复制代码
if (undefined) { console.log('访问undefined,能经过') }// 没输出if(!undefined){console.log('非undefined,能经过') }// 非undefined,能经过复制代码
if (null) { console.log('null,能经过') }// 没输出if(!null){console.log('非null,能经过') }// 非null,能经过复制代码
let obj = { foo: "foo", num: 0}if (obj.bar) { console.log('访问对象不存在属性时候,能经过') }// 没输出if (obj.foo) { console.log('访问对象已存在属性时候,能经过') }// 访问对象已存在属性时候,能经过复制代码
if(NaN){console.log('访问NaN,能经过') } // 没输出if(!NaN){console.log('不为NaN,能经过') }// 不为NaN,能经过复制代码