首页 > 代码库 > 杂七杂八知识点(易错)

杂七杂八知识点(易错)

1.查看对象所有属性:

  Object.keys(对象名);

var o = {
  key1: 1,
  key2: 2
};

Object.keys(o);
// [‘key1‘, ‘key2‘]

2.删除对象属性:

  delete o.p;返回值为布尔类型,删除成功后返回true;  

 

var o = {p: 1};
Object.keys(o) // ["p"]

delete o.p // true
o.p // undefined
Object.keys(o) // []

注意删除一个不存在的属性,delete不报错,而且返回true;

var o = {};
delete o.p // true

  delete命令只能删除对象本身的属性,无法删除继承的属性;

var o = {};
delete o.toString // true
o.toString // function toString() { [native code] }

  delete命令不能删除var命令声明的变量,只能用来删除属性。

var p = 1;
delete p // false
delete window.p // false

3.检查对象是否包含某个属性——in运算符

in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false

in运算符,它不能识别对象继承的属性。

var o = { p: 1 };
‘p‘ in o // true
var o = new Object();
o.hasOwnProperty(‘toString‘) // false  说明toString是继承属性

‘toString‘ in o // true  in运算符不能识别,对继承的属性也返回true

 

杂七杂八知识点(易错)