undefined是一个特殊的值,它表明没有。嗯,不是说真的没有,它就像小强同样无所不在,但你又抓不住它,由于它是没有。。。typescript
var arr = [1, 2, 3]; console.log(arr[4]); // undefined
var a; console.log(a); // undefined
function callMe(name) { return name; } console.log(callMe()); // undefined
function callMe(name) { // do nothing } console.log(callMe('原罪')); // undefined
var def = {hello: "world"}; console.log(def.hi); // undefined
堆内存和栈内存的千丝万缕数组
function doYouLikeMe(You) { delete You.amPower; return 'no'; } var I = {name: "原罪", amPower: 'yes'}; console.log(I.amPower); // 'yes' console.log(doYouLikeMe(I)); // 'no' console.log(I.amPower); // undefined
亚当和夏娃偷吃禁果,犯了原罪es5
function whatAboutAdam(eve) { eve.pop(); return '无罪释放'; } var eve = ['夏', '娃', '的', '原', '罪']; console.log(eve[4]); // '罪' console.log(whatAboutAdam(eve)); // '无罪释放' console.log(eve[4]); // undefined
var a; console.log(typeof a); // "undefined" console.log(typeof undefined); // "undefined" console.log(typeof notDefinedKey); // "undefined"
队友,能够用 ===
对比插件
// void后面加上任何值都会 全等于 undefined void 0 === undefined // true void 1 === undefined // true void '原罪' === undefined // true void true === undefined // true void {} === undefined // true
敌人,能够用 ==
对比:code
null == undefined // true null === undefined // false
敌人的敌人,须要取反
对比:ip
!false === !undefined // true !"" === !undefined // true !0 === !undefined // true false == undefined // false "" == undefined // false 0 == undefined // false
undefined不是保留字,es5以后,全局undefined没法被覆盖内存
undefined = 2; console.log(undefined); // undefined
严格模式下,覆盖全局undefined将直接抛错get
"use strict"; undefined = 2; console.log(undefined); // throw new TypeError();
但局部undefined还能够被覆盖(包括严格模式)it
var undefined = 2; console.log(undefined); // 2
===
,两个等于号的就忘了它吧