1.定义变量,可是没有初始化时,如var a;
2.调用某个函数时,实参个数小于形参个数时,未实参化的形参在函数调用过程当中的值是undefined;
3.调用某个对象尚未添加的属性时,也会返回undefined;javascript
var obj={}
console.log(obj.name);//undefined
复制代码
4.调用某个没有返回值的函数,也会返回undefined;java
function Person(name,age){
this.name=name;
this.age=age;
}
var p=Person("李四",23);//此时的p=undefined;
复制代码
5.对未初始化的变量执行 typeof 操做符会返回 undefined 值;
6.对未声明的变量执行 typeof 操做符一样也会返回 undefined 值。 函数
var message; // 这个变量声明以后默认取得了 undefined 值
//未初始化的变量
alert(typeof message); // "undefined"
//未申明的变量
alert(typeof age); // "undefined"
复制代码
一、手动设置变量的值或者对象某一个属性值为null(在初始化对象时,手动设置对象为null。在做用域中再也不须要使用某个对象时,把null赋值给那个变量解除引用,以释放内存)
二、在javascript的DOM元素获取中,若是没有获取到指定的元素对象,结果通常是null。this
var d=document.getElementById("d");
console.log(d);//当没有id为"d"的标签时返回null
复制代码
三、Object.prototype._proto_的值也是null。(每个对象都有__proto__属性,指向对应的构造函数的prototype属性,可是由于Object是全部类的基类,其没有对应的构造函数,全部Object.prototype._proto_值为空);spa
console.log("a".__proto__);
//指向的是String的prototype属性
//String {"", length: 0, constructor: ƒ, anchor: ƒ, big: ƒ, blink: ƒ, …}
复制代码
四、在正则捕获的时候,若是没有捕获到结果,默认也是null。 prototype