三个方法

特别注意:for in 循环仅能访问原型链中 enumerable(可枚举)的属性; in 操作符不管是否可枚举

      const arr = []
      const obj = {
        name: '雪月',
        age: 18,
      }
      console.log(obj.hasOwnProperty('name')) // true
      console.log(obj.hasOwnProperty('age')) // true
      console.log(obj.hasOwnProperty('valueOf')) // false

      console.log('------')
      console.log('name' in obj) // true
      console.log('age' in obj) // true
      console.log('valueOf' in obj) // true
      console.log('dddd' in obj) // false

      console.log('------')
      console.log(arr instanceof Array) // true
      console.log(arr instanceof Object) // true
      console.log(obj instanceof Object) // true
      console.log(obj instanceof Array) // false