js--对象

一切皆对象!

对象:object
定义:某种类型的一个【具体】的实例

面向对象编程的前提是先创建对象。在js中如何去定义一个具体的对象?	
//语法:
var 对象变量={
		key1:value1;
	//   键  : 值
		key2:value2;
		key3:value3;
		....
};

一、在js中 任何的对象都是任意一个无序的键值对的集合。
键:字符串
值:js支持的任意类型

var tv={
	name:'电视频道',
	kinds:['央视频道''地方频道''电影频道'],
	isLiving:true;
	active:function(){
		console.log(`${this.name}总会播放一些综艺节目、电视剧、还会投放一些广告`);
	}
}

二、js中对象的键的说明:(加粗为重点)
1、js中对象的键都是字符串
2、如果键满足标识符的命名规则,那么双引号或者单引号可以省略。
3、如果是纯数值型的键,那么引号也可以省略。
4、如果键不满足标识符的命名规则,也不是纯数值型的键,那么必须使用引号包围。
5、js中对象的键是无序的【唯一的】
无序:定义的键的顺序和遍历的顺序是不一致的(显示的顺序)。
唯一:一个对象中的所有的键必须不能重复,具有唯一性。如果多个键相同,那么后定义的会覆盖前面的。
键的无序性和唯一性都是因为,键值对的存放的位置要通过键的哈希值来确定。
如果键相同,那么哈希值也是相同的,就会存入相同的位置,产生覆盖。

6、值是跟者键走的,值的特点
无序,不唯一,可以是js的任意类型。

三、 如何通过对象的键访问对应的值,这种访问是单向,只能通过键去访问键对应的值,不能通过某一个值找到它对应的键。
1、如果键满足标识符的命名规则
obj.键名
obj[“键名”]
obj[变量名] 变量 保存的是键名
2、如果键是纯数字形式
obj[键名]
obj[“键名”]
obj[变量名] 变量 保存的是键名
3、其他情况
obj[“键名”]
obj[变量名] 变量 保存的是键名

四、js关键字
this:js中关键字,代表一个对象的引用,指向一个对象的引用。

五、对象属性的操作:增、删、改、查。
① 动态添加:
语法:obj.键=值;
obj.gender=male,
obj[‘study’]=function(){},
② 删除:
语法:delete obj.键名;
delete obj.score
③ 修改:
语法:obj.键=值;
注意:可以直接修改值,不能修改键,想改键名,先删除再添加。
④ 获取:
通过键获取对应值。单向映射。

六、遍历对象的方式:
1:for-in 专门用来遍历对象的一种方式。
2:Object.keys(obj) 获得实参对象所有的键,以数组形式返回。
3:Object.values(obj) 获得实参对象所有的键值,以数组形式返回。不能获得对应的键。
4:Object.entries(obj) 获得实参对象的所有键值对,以二维数组形式返回。

const:
①修饰基本数据类型时,声明时必须赋值、只能赋值一次。
②修饰引用数据类型时,声明时必须赋值、只能赋值一次,对象内容可以改变,指向不能改变。

七、对象数组
概念:数组的元素是对象。

八、方法:
call:将当前函数对象借用给其他的对象使用。
语法:函数.call(借用者,参数…)
apply:和call的作用一致
语法:函数apply(借用者,[参数1,参数2,…])
bind:帮助实参对象生成一个和当前函数对象一样的函数对象。

js内置对象

js为何要提供内之对象。
为了给开发者提供一些基础的通用的功能,供开发者快速开发。
Object 对象。
1、作为构造函数使用,创建对象

var obj=new Object();
	2、作为工具函数,将任意数据转换为对象。
var obj=new Object();
var num=123;
var obj=Object(num);
console.log(Object(null))//空对象
console.log(Object(undefined))//空对象

3、Object提供静态函数工具:
Object.create(?):创建对象
Object.keys(obj):获得obj所有的key
Object.values(obj):获得obj所有的值
Object.entries(obj):获得obj所有的键值对

4、Object提供一些实例函数供js对象使用
toString():对象强制转换成字符串
hasOwnProperty(key):判断key是否是当前对象的私有属性。
toLocalString():得到当前对象的本地的字符串形式。
valueOf():得到当前对象的原始值
5、instanceof 左边对象是否是右边类型的实例。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值