JavaScript--对象

JavaScript对象

 

对象这个概念很抽象,在JavaScript中,一切都可以看作是对象,对象可以拥有属性,也可以拥有方法,就像是一台多功能的冰箱,它可以有重量,高度以及功耗这些属性(属性),做很多事情,可以用它冰冻东西,可以用来存储东西(方法)。

我们可以用,以下两种方式来创建一个空的对象

let user = new Object();//“构造函数”的语法 Object首字母要大写
let user = {}; //字面量的语法

文本和属性

在创建对象的时候,以键值对的形式存放

let user  = { //创建了一个对象
    name:"姓名", //这里用逗号来进行分割
    age:"18",
    "hallo yoyo":true //多词属性必须要加上引号
}

左边的成为键(“标识符”),在冒号 " : " 的前边,值则在右边。

我们可以通过点的形式来进行访问,打开控制台

console.log(user.name); //此时会输出“姓名”

但是在输入"hallo yoyo"的时候,语法会报错:

user.hallo yoyo = true; //这里会出错误

这里是因为,key不是有效的变量标识符(不包含空格,不能以数字开头,不能包含特殊的字符),我们可以通过方括号的形式,来进行读取

console.log(user['hallo yoyo']);

如果我们不需要某个属性,则可以通过delete的方式来删除该属性:

delete user.name; //此时删除了user中的name属性

计算属性

当我们在创建一个对象的时候,如果在对象字面量中使用方括号的话,这叫做计算属性:

let a = prompt("请输入你要够买的东西","phone");
let b = {
    [a]:2999 //属性从变量a中获取到
}

alert(b.phone); //这里的phone是上边输入的phone
console.log(b[a]); //这里输出2999

检测属性是否存在,用in

由于JavaScript的特性,属性即使不存在,也不会报错,但是能得到一个undefined,我们可以通过判断它是否等于undefined来判断一个属性是否存在:

let a = {};
console.log(a.b===undefined);//得到结果为true,则证明在a中,并没有一个叫b的属性

这里除了上述的方法,还可以通过一个叫 "in" 的检查属性来判断是否存在该属性

let a = {
    b:2
}

console.log("b" in a); //这里b需要用引号引上  返回的结果为true
console.log("c" in a); //返回的结果为false

通过 "in" 的方式,我们可以看出,若对象中有该属性,则返回的结果为true,否则为false。

这里我们需要注意的是,b和c需要加上引号,因为这是一个字符串,而省略引号的话,则表示 "in" 之前的是一个变量:

let a = {
    b : 2
}

let c = "b";
console.log(c in a) // true

for...in 循环

"for in" 循环并不是for循环,两者不是一个东西:

for(key in obj){
    // 执行的代码
}

例如:

let user = {
    name:"张三",
    age:18
};

for(let key in user){
    console.log(key); // 输入name age 
    console.log(user[key]) //输入张三 18
}

我们在遍历对象的时候,整数属性会被排序:

let user = {
    "1":"张三",
    "41": 18,
    "32": 3,
    "2": 182
};

for (let key in user) {
    console.log(key); //这里会输出1 2 32 41
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值