【无标题】属性方法

对象

⽆序属性的集合,其属性可以包含基本值,对象,或者函数。可以将对象想象成散列表:键值对,其中值可是数据或者函数。ECMAScript中的对象其实就是⼀组数据(属性)和功能(⽅法)的集合

对象的创建

对象的初始化有两种⽅式,构造函数模式和字⾯量模式、

字面量模式

var obj = {
 name:"terry",
 age:12,
 sayName:function(){
 console.log("my name is ",this.name);
 }
}

构造函数模式

var obj = new Object();
obj.name = "terry";
obj.age = 12;
obj.sayName = function(){
 console.log("my name is",this.name);
}
//等价于 <==>
var obj={};
obj.name="terry";
obj.age=12;

对象的访问:

属性:obj.name或obj[‘name’]

方法:obj.sayName();

遍历数组和对象

for …in循环

在数组中:for(k in arr) k为数组的键,值的为arr[k]

在对象中:for(k in obj) k为对象的属性名,属性值为obj[k]

for(⾃定义变量名 in 数组/对象){

 执⾏代码

}

for(var key in obj){

 var value=obj[key];

}

新增删除对象中的属性

只能删除对象的⾃有属性(原有属性可以重写)

delete.obj.getName

新增属性:obj.newpropname=“value”

Object显示类型转换(强制类型转换)

ECMAScript中可⽤的3种强制类型转换

1.Boolean(value)

把给定的值转换成Boolean型;

2.String(value)

把给定的值转换成字符串。

3.Number(value)

把给定的值转换成数字(可以是整数或浮点数)

valueOf和toString

valueOf设置对象的原始值,通常由 JavaScript 在后台自动调用,并不显式出现在代码中。

如果重写了valueOf和toString方法,在涉及到运算时,会优先调用valueOf方法,涉及到显示时,会优先调用toString方法

如果只重写了valueOf()或者toString()方法,则调用该方法,并将返回值用Number()转换。

对象检测属性

in 检测某属性是否是某对象的自有属性或者是继承属性

Object.prototype.hasOwnProperty()检测给定的属性是否是对象的自有属性,对于继承属性将返回false

Object.prototype.propertyIsEnumerable() 检测给定的属性是否是该对象的自有属性,并且该属性是可枚举的返回true,其他返回false。通常由JS代码创建的属性都是可枚举的,但是可以使用特殊的方法改变可枚举性

Object原型属性及⽅法

方法:

constructor:保存⽤户创建当前对象的函数,与原型对象对应的构造函数

hasOwnProperty(propertyName):检查给定的属性名是否是对象的⾃有属性

propertyIsEnumerable(propertyName):检查给定的属性在当前对象实例中是否存在

valueOf():返回对象的字符串,数值,布尔值的表示

toLocaleString():返回对象的字符串表示,该字符串与执⾏环境的地区对应

toString():返回对象的字符串表示

isPrototypeOf(object):检查传⼊的对象的原型

如何为对象的属性进行描述

Object.defineProperty(obj,'sex',{
    configurable:false,//是否可以被删除
    enumerable:false,//是否可以枚举
    writable:false,//是否可以被修改
    value:'男'//值
})
//查看对象的某个属性的特性
var res = Object.getOwnPropertyDescriptor(obj,'num');
//一次设置多个
var book = {};
  Object.defineProperties(book,{
  _year :{//数据属性
   value:1001},
  edition :{//数据属性
   value:1},
   }
   )

构造器属性

可以自定义属性的set和get方法

对象序列化

JSON.stringify(obj):将对象序列化为Json字符串,只能序列化对象可枚举的自有属性

JSON.parse(jsonStr) :反序列化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值