深入理解 Undefined

深入理解 Undefined文章封面

Undefined 概述

变量的值被赋予一个类型,javascript中有几个内置的本地类型:

  1. undefined
  2. null
  3. boolean
  4. string
  5. number
  6. object
  7. symbol

    只要声明了变量就会为其分配原始值undefined,直到以不同的手段为其赋值。

    此外函数执行完如果没有进行return则默认返回undefined


判断是否为undefined
// javascript code-model
var foo = {};

foo.bar; // undefined
foo.bar(); // TypeError
var foo1;
console.log(fool1 == undefined); // true
console.log(fool2 == undefined); // 报错


console.log(typeof fool1 == 'undefined'); // true
console.log(typeof fool2 == 'undefined'); // true


使用 in 运算符能够检查对象是否存在某个属性中:
// javascript code-model
var fool = {};

// undefined 这样不推荐,因为bar未在对象内声明
typeof fool.bar;

// false 如果不关心原型链可以这样
'bar' in fool;

// false 如果关心原型链可以这样
fool.hasOwnProperty('bar');


应该用typeof还是in/hasOwnProperty?

一般来说,如果是判断一个属性是否存在就用in/hasOwnProperty,区别在于原型链判断。如果要检查属性或者是否赋值最好用typeof或===

    留言 (2)
  • 用户头像 gecko 游客

    instance of?


  • 用户头像 32432

    666

    音乐封面 点击展开工具栏