0

0

什么是JavaScript对象_如何操作对象属性【教程】

幻影之瞳

幻影之瞳

发布时间:2026-01-28 16:31:02

|

306人浏览过

|

来源于php中文网

原创

JavaScript对象是键值对无序集合,属性默认可读写、可枚举、可配置;字面量{}最安全,Object.create(null)创建无原型对象;点号用于静态合法标识符,方括号用于动态或特殊键名;delete仅对自身且configurable为true的属性生效;for...in需hasOwnProperty过滤原型属性。

什么是javascript对象_如何操作对象属性【教程】

JavaScript 对象不是“类实例”或“模板产物”,它本质上是一组键值对的无序集合,所有属性默认可读写、可枚举、可配置——除非你显式用 Object.defineProperty 改变描述符。

对象字面量和构造函数创建的区别在哪

两种方式最终都生成普通对象,但行为细节不同:

  • {} 字面量创建的对象,其 [[Prototype]] 指向 Object.prototype,是最常用也最安全的方式
  • new Object() 本质等价于字面量,但多一层函数调用开销,且容易被误写成 new Object(123) 导致意外包装(返回 Number 实例而非普通对象)
  • Object.create(null) 创建的是“真·空对象”:没有 toStringhasOwnProperty 等任何继承方法,适合做纯哈希表(比如缓存 key 映射),但调用 obj.toString() 会直接报 TypeError: obj.toString is not a function

访问属性时点号和方括号怎么选

点号(.)要求属性名是合法标识符且已知;方括号([])支持动态计算、含特殊字符或保留字的键名:

  • 能用 obj.name 就别写 obj["name"] —— 前者更快、更易读、支持 IDE 自动补全
  • 当属性名来自变量、含空格或短横线(如 "user-id")、是数字字符串("123")或关键字("class")时,必须用 obj[key]
  • obj[123]obj["123"] 访问的是同一个属性,因为数字键会被自动转为字符串

删除属性为什么 delete obj.prop 有时不生效

delete 只能移除对象自身、且 configurable: true 的属性。常见失效场景:

PageGen
PageGen

AI页面生成器,支持通过文本、图像、文件和URL一键生成网页。

下载

立即学习Java免费学习笔记(深入)”;

  • 属性由 Object.defineProperty 设置了 configurable: false(例如 Array.prototype.push)→ delete arr.push 返回 false,属性仍在
  • 访问器属性(get/set)本身不可删,但可以删掉整个描述符定义(前提是 configurable 为 true)
  • 全局环境下用 var 声明的变量会成为全局对象的不可配置属性(delete window.xxx 失败);let/const 声明的则根本不在全局对象上,delete 无意义

for...in 遍历对象要注意什么

for...in 枚举的是对象**自身 + 原型链上所有可枚举(enumerable: true)的字符串键属性**,这常导致意外结果:

  • 必须配合 hasOwnProperty 过滤原型属性:if (obj.hasOwnProperty(key)) { ... }
  • 不能保证遍历顺序:ES2015 规定数字键按升序,其余字符串键按插入顺序,但老引擎(如 IE)不保证
  • 想只遍历自身属性,更推荐 Object.keys(obj)(返回字符串数组)或 Object.getOwnPropertyNames(obj)(包含不可枚举属性)

真正难的不是语法,而是理解属性描述符(writable/enumerable/configurable)如何影响操作结果——比如 Object.freeze 实际就是把所有自身属性设为 writable: falseconfigurable: false,之后任何赋值或删除都会静默失败(严格模式下报错)。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

236

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

438

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

776

2023.08.22

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

183

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

286

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

258

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

124

2025.08.07

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

530

2023.09.20

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

84

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.2万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号