美文网首页
javascript遍历对象

javascript遍历对象

作者: 啦啦啦_e26f | 来源:发表于2019-02-25 16:37 被阅读4次

for in方法


var obj = {
  name:"mayun",
  age:55,
  surname:'男'
}
for(var prop in obj){
   console.log(obj[prop])
}
//这样会产生一个问题,会把会把obj原型对象上的属性也会遍历出来
var obj = {
  name:"mayun",
  age:55,
  surname:'男',
  __proto__:{
    lastname:"yun"
  }
}
//此时会把lastname属性也会遍历出来,
//此时可以用hasOwnPropetry方法判断属性是否是自己身上的属性
for(var prop in obj){
  if(obj.hasOwnProperty(prop)){
    console.log(obj[prop])
  }
//还有一个in方法,次方法会判断属性是否在对象上,原型上也算
"age" in obj //true
"lastname" in obj //true
}

instanceof方法

官方解释:instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
听着有点别扭,还是以一段代码说明:

//语法:A instanceof B
//其实就是判断A对象的原型链上有没有B的原型(B.prototype)
function B(){}
var A =new B();
A instansceof B;//true
A instanceof Object//true
//一切对象都继承Object.prototype,也有例外,比如Object.create(null)
Array instanceof Object//true
String instanceof Object//true
Array instanceof String//false

判断一个变量是数组还是对象,三种方法

var a = [] || {};
//第一种:
a instanceof Array//是数组返回true(有iframe会存在父子域问题)
//第二种:
a.constuctor === Array//是数组返回true
//第三种:(建议用这种)
Object.prototype.toString.call(a);//是数组会返回"[object Array]"的字符串

相关文章

网友评论

      本文标题:javascript遍历对象

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