Chrome DevTools控制台属性颜色、大小写含义及规范技术咨询
背景
Chrome DevTools文档中有关于不同颜色属性含义的相关说明,但该说明不适用于控制台输出的ECMAScript对象属性。
以Chrome DevTools控制台中执行console.dir(window)为例,全局对象的属性被划分为四类:
- 大写属性
- 小写属性
- 加粗属性
- 浅色属性
截图
以下为便于参考的三张截图:


加粗和浅色属性均包含大小写形式,四种格式的组合均会出现。
技术问询
请问这四种格式分别代表什么含义?该显示行为是否有官方指定的规范?
解答
属性格式含义说明
- 大写属性:通常对应浏览器原生的全局常量、内置构造函数或标准内置对象,比如
NaN、Math、Date这类属于ECMAScript标准或浏览器特有内置的固定标识。 - 小写属性:多为普通可读写的全局变量、对象方法或实例属性,比如
setTimeout、document这类日常常用的全局API或实例对象。 - 加粗属性:表示该属性为**不可枚举(non-enumerable)**属性。这类属性无法被
for...in循环、Object.keys()等常规枚举方法遍历到,一般是对象内部固有属性,或是通过Object.defineProperty手动设置为不可枚举的属性。 - 浅色属性:代表该属性是继承自原型链的属性,而非对象自身直接拥有的属性。比如
window对象上的不少方法,实际是继承自Object.prototype或上层原型链的属性。
官方规范说明
Chrome DevTools的这种显示规则属于自身UI交互设计,目前没有单独公开的官方规范文档专门定义这四类格式的含义,但相关实现逻辑可以在Chrome DevTools的开源代码库中找到。这类显示规则的核心目的是帮助开发者快速区分属性的类型、来源和特性,提升调试效率。
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

