美文网首页
对象的枚举

对象的枚举

作者: 灯火葳蕤234 | 来源:发表于2019-10-06 10:03 被阅读0次
for in
var obj = {
  name: '13',
  age: 123,
  sex: 'male',
  height: 180,
  weight: 75
}
for(var key in obj){
  console.log(key + " " +typeof(key));
  console.log(obj[key]);
}

但是该方法会把原型链上的属性也遍历,这也许不是我们想要的,我们可以用以下方法2来解决

1.hasOwnProperty
var obj = {
  name: '13',
  age: 123,
  sex: 'male',
  height: 180,
  weight: 75
}
for(var key in obj){
  if(obj.hasOwnProperty(prop)){ //过滤
    console.log(obj[key]);
  }
}
2.in

in会遍历对象上所有能访问的属性,包括原型

3.instanceof

A instanceof B 表示判断 A 对象是不是 B构造函数构造出来的,这是官方解释,但是我们在使用过程中,往往是判断 A对象的原型链上有没有B的原型

怎么判断是数组还是对象

1.使用 constructor 进行区分

[].constructor   //function Array() {[native code]}
var obj = {};
obj.constructor //function Object() {[native code]}

2.使用 instanceof 进行区分

[] instanceof Array   //true
var obj = {};
obj instanceof Array   //false

3.通过 toString 方法来区分

Object.prototype.toString.call([]);//"[object Array]"
Object.prototype.toString.call(123);//"[object Number]"
Object.prototype.toString.call({});//"[object Object]"

相关文章

  • Java-Eunm equals

    枚举对象.equals(枚举对象)是可以的。因为枚举类是单例。

  • JavaScript遍历——初探

    for in 枚举对象属性,对象是无序hash结构,枚举顺序不可测应该检测枚举对象的类型是否为null undef...

  • 浅谈for in与for of的使用对比

    一、for...in 1、枚举对象 2、枚举数组for..in不仅可以枚举数组自身, 还能枚举数组的原型对象以及数...

  • 2019-05-06 遍历对象的属性

    1:可枚举和不可枚举 对象的属性分为可枚举和不可枚举,它们是由属性的enumerable值决定。 2:遍历 对象遍...

  • 对象的枚举

    for in 但是该方法会把原型链上的属性也遍历,这也许不是我们想要的,我们可以用以下方法2来解决 1.hasOw...

  • 枚举

    如何定义枚举类 什么枚举类:类里的对象是有限个,可以枚举出来 如何使用enum定义枚举类 枚举...

  • 枚举

    定义一些带名字的常量, 相对对象更加安全 常量枚举 数字枚举 字符串枚举 异构枚举

  • JS对象属性遍历工具对比

    输出结果: 分析如下: Object.keys 返回对象可枚举的自身的属性。 for in 返回对象可枚举的自身以...

  • 循环Object的方法能否循环是否可枚举属性,能否循环是否原型的

    我们先定义一个对象,这个对象有原型上的属性,有不可枚举属性,有可枚举属性 for in可以循环出所有的可枚举属性,...

  • JS遍历属性

    可枚举属性 对象属性可枚举,表示该属性的值不可修改,可认为该属性是常量。如何定义不可枚举的属性? 获取对象所有可枚...

网友评论

      本文标题:对象的枚举

      本文链接:https://www.haomeiwen.com/subject/qpqzyctx.html