学习JavaScript笔记(三)对象

自学的教程

阮一峰老师的JavaScript标准参考教程:https://wangdoc.com/javascript/

1. 概述

对我来说,目前应用JavaScript是很浅显的一层,几乎不用对象,导致开发效率很低。而对象是JavaScript最重要的一种数据类型,所以拿出来单独好好的学习一下。

基本概念需要了解:

  • 对象其实就是键值对的组合,键名都是字符串(不是的也会转为字符串),而键值则任意;
  • 如果键值是一个函数,则叫做方法;

其实面向对象的思维方式与C++,Java等语言都一样,我们需要渐渐尝试去用对象,用方法,规范逻辑。

2. 属性的操作

1)可以用点运算符,[]运算符读取对象的属性,或者给属性赋值;
2)JavaScript 允许属性的“后绑定”,也就是说,你可以在任意时刻新增属性,没必要在定义对象的时候,就定义好属性;
3)属性的查看:查看一个对象本身的所有属性,可以使用Object.keys方法

var obj = {
  key1: 1,
  key2: 2
};

Object.keys(obj);
// ['key1', 'key2']

4)属性的删除:delete即可,删除成功后返回true

var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []

注意:删除一个不存在的属性,delete不报错,而且返回true,因此不能通过delete返回值来判断某个属性是否存在。可以用下面讲解的in运算符。
5)属性是否存在:in 运算符

var obj = { p: 1 };
'p' in obj // true
'toString' in obj // true

in运算符的一个问题是,它不能识别哪些属性是对象自身的,哪些属性是继承的。就像上面代码中,对象obj本身并没有toString属性,但是in运算符会返回true,因为这个属性是继承的。

这时,可以使用对象的hasOwnProperty方法判断一下,是否为对象自身的属性:

var obj = {};
if ('toString' in obj) {
  console.log(obj.hasOwnProperty('toString')) // false
}

3. with语句:不建议使用!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值