网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
// ① 使用只声明而未初始化的变量时,会返回“undefined”
var a
console.log(a)
// ② 获取一个对象的某个不存在的属性(自身属性和原型链继承属性)时,会返回“undefined”
var obj = {
name: 'pan'
};
console.log(obj.app)
// ③ 函数没有明确的返回值时,却在其他地方使用了返回值,会返回“undefined”
function foo() {}
console.log(foo())
// ④ 函数定义时使用了多个形参,而在调用时传递的参数的数量少于形参数量,那么未匹配上的参数就为“undefined”
function bar(a,b,c){
console.log(c)
}
bar(1,2)
Null
Null类型只有一个唯一的字面值null,表示一个空指针对象,这也是在使用typeof运算符检测null值时会反回“object”的原因。
常见的出现null的场景
//# ①一般情况下,如果声明的变量是为了以后保存某个值,则应该在声明时就将其赋值为"null"
var obj = null
function foo(){
return {
name: 'pan'
}
}
obj = foo()
//# JavaScript在获取DOM元素时,如果没有获取到指定的元素对象,就会返回"null"
document.querySelector('#id'); //null
//# ③在使用正则表达式进行捕获时,如果没有捕获结果,就会返回"null"
'test'.match(/a/); //null
Undefined和Null两种类型的异同
(1)相同点
- 都只有一个字面值,分别是undefined和null
- 在转换为Boolean类型的值时,都会转换为false。所以通过非运算符(!)获取结果为true的变量时,无法判断其值为undefined还是null
(2)不同点
- 在使用typeof运算符检测时,Undefined类型的值会返回“undefined”,而Null类型的值会返回“object”
typeof undefined //undefined
typeof null //object
- 在需要进行数值类型的转换时,undefined会转换为NaN,无法参与计算;null会转换为0,可以参与计算。
undefined + 0 //NaN
null + 0 //0
- 无论在什么情况下都没有必要将一个变量显式设置为undefined。如果需要定义某个变量来保存将来要使用的对象,应该将其