可以通过 **for in** 循环来遍历对象(类似与Java的加强for)
    var obj = {
    name : ‘haha’,
    age : 15,
    sex : ‘male’
    }
    for(var value in obj){
    console.log(value);
    }
    //输出 name age sex
    //若想输出属性值 不能直接 console.log(obj.value); 因为实际上访问的是 obj[‘value’] 即得到的是索引
    //即结果都是undefined
    //若想输出属性值 只能 console.log( obj[value] );
    *可以通过 对象.hasOwnProperty(属性名)** 来判断该属性是否是属于对象自己的属性(即是我们设置的) 不包括系统自设的
    返回值是布尔值
    var obj = {
    name : ‘haha’,
    proto : {
    age : 15
    }
    }
    for(var value in obj){
    if(obj.hasOwnProperty(value)){
    console.log(value);
    }
    }
    //结果只输出name
    //proto是系统自设的 即使我们修改了其值 这个属性也是系统设置的
    属性名.in.对象** 是用来判断当前对象能不能访问到这个属性 即使这个属性不是自己的
    注意属性名要写成字符串形式
    var obj = {
    name : ‘haha’,
    proto : {
    age : 15
    }
    }
    console.log(‘proto‘ in obj);
    //结果输出true
    *
    A instanceof B** 判断A对象的原型链上有没有B的原型

    function Person(){}
    var person = new Person{}
    console.log(person instanceof Person);
    console.log(person instanceof Object);
    //输出 true true