携程面试题更新 2026-08-05

Object.prototype.a = 10; var obj = {b: 20}; Object.defineProperty(obj, 'c', {enumerable: false, value: 30}); for (let k in obj) {console.log(k);} 输出是什么?

携程前端/移动开发消费品/零售技术原理JavaScript

考察说明

考察 for-in 遍历可枚举属性及原型链行为

回答思路

  1. 理解 for-in 会遍历自身和继承的可枚举属性
  2. 识别 Object.defineProperty 设置 enumerable:false 的属性不被遍历
  3. 按顺序输出 b 和 a
  4. 说明为何不输出 c
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。