实际开发中常见的一个问题:我需要判断 函数参数是否 有传,怎么判断
正确写法
function bindEvent(ele) {
if (ele == null) {
console.log('没有传参数');
}
}
看下面案列
function bindEvent(ele) {
if (ele == null) {
console.log('null 1111');
}
if (ele === null) {
console.log('null 222');
}
if (ele == undefined) {
console.log('undefined 111');
}
if (ele === undefined) {
console.log('undefined 222');
}
if (ele == false) {
console.log('false 1111');
}
console.log(typeof(ele));
}
bindEvent(); // 打印结果:1. null 1111 2. undefined 111 3.undefined 222 4.undefined
bindEvent(''); // 打印结果:1. false 1111 2. string
bindEvent(false); // 打印结果 : 1. false 1111 2. boolean
结论
- == 是对比 将两个变量 转换成 Boolean 类型之后 对比(除了 unll 与 undefined)
- === 先对比 类型,再对比 值,类型不对直接返回 false
- null 与 undefined 特殊处理
- 函数值没有值 实际上是 undefined
- null == undefined true
- null === undefined false
- null(undefined) ==(===) 其他变量 false
null undefined 特殊处理 记忆 即可
网友评论