声明对象的两种语法

 let obj = { 'name': 'frank', 'age': 18 }

let obj = new Object({'name': 'frank'})

如何删除对象的属性

delete obj.xxx或delete obj['xxx']

  • 即可删除obj的xxx属性

  • 注意区分

    • 含有属性名,但值为undefined

      • 'xxx' in obj ===undefined

      • obj.xxx ===undefined

        • 不能断定'xxx'是否为obj的属性
    • 不含属性名

      • ‘xxx’ in obj = = = false

如何查看对象的属性(读属性)

查看自身所有属性

  • Object.keys(obj)

    • 查看key
  • Object.entries(obj)

    • 查看所有

查看自身+共有属性

- console.dir(obj)

  • 或者自己依次用Object.keys打印出obj.__proto__(不推荐用)

判断一个属性是自身的还是共有的

  • obj.hasOwnProperty('toString')

看单个属性

  • obj['name'] (推荐用)

    • 这里的name是字符串
  • obj.name

    • 这里的name是字符串
  • obj[name]

    • 这里的name是变量

注:读对象的属性时,

如果使用 [ ] 语法,那么 JS 会先求 [ ] 中表达式的值,注意区分表达式是变量还是常量。

如果使用点语法,那么点后面一定是 string 常量。

如何修改或增加对象的属性(写)

自身属性

  • obj['name'] = 'jack'

    • 更改自身属性
  • Object.assign(obj, {age: 18, gender: 'man'})

    • 批量赋值

共有属性

  • Object.prototype['toString'] = 'xxx'

    • 改共有属性

隐藏属性

  • let obj = Object.creat(common)

    • 改原型

'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj可以判断obj对象不含xxx属性

  • 自身属性和共有属性都返回true

obj.hasOwnProperty('name')用来判断一个属性是obj自身的还是共有的

  • 仅仅是自身属性才返回true

延伸

Object.defineProperty()

  • 用于在一个对象上定义新的属性或修改现有属性, 并返回该对象.

JS 对象基本用法的更多相关文章

  1. json对象数组的创建、遍历、添加、删除、修改、js的splice()用法

    本文链接:https://blog.csdn.net/houfengfei668/article/details/79843625 )第二种方式:手动构造json对象数组 )for )用splice方 ...

  2. js事件监听器用法实例详解

    这篇文章主要介绍了js事件监听器用法,以实例形式较为详细的分析了javascript事件监听器使用注意事项与相关技巧,需要的朋友可以参考下本文实例讲述了js事件监听器用法.分享给大家供大家参考.具体分 ...

  3. js事件监听器用法实例详解-注册与注销监听封装

    本文实例讲述了js事件监听器用法.分享给大家供大家参考.具体分析如下: 1.当同一个对象使用.onclick的写法触发多个方法的时候,后一个方法会把前一个方法覆盖掉,也就是说,在对象的onclick事 ...

  4. js对象详解(JavaScript对象深度剖析,深度理解js对象)

    js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...

  5. JS的简单用法

    JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...

  6. jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

    这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...

  7. JS组件系列——表格组件神器:bootstrap table 包含了js对象的定义和对象成员函数的定义

    前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...

  8. FormData js对象的介绍和使用

    FormData js对象的介绍和使用 FormData对象,可以把所有表单元素的name与value组成一个queryString,提交到后台. 在使用ajax提交时,使用FormData对象可以减 ...

  9. JS和jQuery用法区别

    目录 JS和jQuery用法区别 外观区别 查找元素 操作标签 操作内容 操作属性 操作位置 操作样式 事件 JS和jQuery用法区别 外观区别 jQuery与JS最直观的区别就是外观上jQuery ...

随机推荐

  1. 记一次mysql关于limit和orderby的优化

    针对于大数据量查询,我们一般使用分页查询,查询出对应页的数据即可,这会大大加快查询的效率: 在排序和分页同时进行时,我们一定要注意效率问题,例如: select a.* from table1 a i ...

  2. PHP xml_get_error_code() 函数

    定义和用法 xml_get_error_code() 函数获取 XML 解析器错误代码.高佣联盟 www.cgewang.com 如果成功,该函数则返回错误代码.如果失败,则返回 FALSE. 语法 ...

  3. luogu P4852 yyf hates choukapai 单调队列优化dp

    LINK:yyf hates choukapai 由于赶时间 要做的题有点小多.. 所以简略概述一下. 容易想到一个暴力dp \(f_{i,j,k}\)表示到了第i张牌此时连抽j次已经单抽k次的最大值 ...

  4. C 语言学习 --2

    memset Declaration: void *memset(void *str, int c, size_t n); Copies the character c (an unsigned ch ...

  5. 028_go语言中的超时处理

    代码演示 package main import "fmt" import "time" func main() { c1 := make(chan strin ...

  6. Secure CRT连接VMware虚拟机中的CentOS 7

    操作步骤: 1.安装Centos 7   虚拟机设置==>NetworkAdapter===>选择NAT(共享主机的IP地址), CTRL+ALT+F1切换到图形界面 选择右上角以太网打开 ...

  7. 洛谷 P4198 楼房重建

    思路 此题可转化为以下模型 给定序列\(a[1...n]\),支持单点修改,每次求区间单调栈大小 \(n,Q\le 10^5\) 区间单调栈是什么呢?对于一个区间,建立一个栈,首先将第一个元素入栈,从 ...

  8. 你真的理解索引吗?从数据结构层面解析mysql索引原理

    从<mysql存储引擎InnoDB详解,从底层看清InnoDB数据结构>中,我们已经知道了数据页内各个记录是按主键正序排列并组成了一个单向链表的,并且各个数据页之间形成了双向链表.在数据页 ...

  9. JS学习第八天

    DOM访问列表框.下拉菜单的常用属性: form返回列表框.下拉菜单所在的表单对象; length返回列表框.下拉菜单的选项个数; options返回列表框.下拉菜单里所有选项组成的数组; defau ...

  10. C#LeetCode刷题之#653-两数之和 IV - 输入 BST(Two Sum IV - Input is a BST)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4098 访问. 给定一个二叉搜索树和一个目标结果,如果 BST 中 ...