js 对象
发布日期:2022-02-08 04:20:56 浏览次数:5 分类:技术文章

本文共 2024 字,大约阅读时间需要 6 分钟。

对象

1、简介

  • 创建对象,key有两种展示方式:key为变量、key为字符
    var a=3;
    var obj={
    [a]:10, // 创建对象时,如果key是一个变量,就需要写在 [ ] 里
    a:20 // 这个a是一个字符Key
    };
  • 描述对象下的属性
    console.log(obj); // {3: 10, a: 20} key为变量时,创建时与创建完是不一样的
    console.log(obj[a],obj[3]); // 10 10 变量key的描述方式
    console.log(obj[“a”],obj.a); // 20 20 字符串key的描述方式
  • 直接描述对象下有一个a的属性,值是1
    obj.a=1;
    obj[“a”]=1; // 对象[字符key]=value;
    key就是属性名称,必须是字符串(ES5),不是字符串的会隐式转化为字符串
    var a=“a”;
    obj[a]=1;//中括号的方式是可以带入变量作为key的,obj. 点 方法是不能使用变量;key是字符串时,必须加 " "
  • object对象,属性名表示方式:
    变量key—obj[a] (一种,除了使用变量名作为可以表示出来的属性名,但是可以使用变量的值为属性名,反正对象obj中真正存在的是变量的值,只不过他的值转化为了字符串);
    字符key—obj[“a”] 或 obj.a (两种)

2、示例:

(1)变量作为key,创建对象属性及赋值
obj={a:1};
var b=10; //b的值会成为对象key
obj[b]=2;
console.log(obj[b]);//2
console.log(obj);//{10: 2, a: 1}

(2)不给c赋值,则默认undefined

obj={a:1};
var c;
obj[c]=2;
console.log(obj[c]);//2
console.log(obj);//{a: 1, undefined: 2}

(3)直接以obj[ ]的方式写入属性key,则中括号的内容就是变量key

obj={a:1};
obj[10]=2;
console.log(obj[10]);//2
console.log(obj);//{10: 2, a: 1}

(4)描述字符串key的两种方式

obj1={e:2,u:8};
console.log(obj1[“e”],obj1.u); //2 8

(5)对象的遍历 for in 循环

for(var prop in obj1){
console.log(prop,obj1[prop]);//属性名 属性值
}

(6) 属性名是数字排靠前,按数值大小排列;字母靠后,按写的顺序排列

var y = "z";obj1[y]=60;//在 obj1["r"] 前面var m ;obj1[m]=80;var gg = true;obj1[gg]=1;console.log(obj1[gg]);console.log(obj1[true]);var ll = {
qq:11};obj1[ll]=33;obj1[2]=0; //添加到最前面obj1["4"]=40; //添加到 obj1[2]=0; 的后面obj1["r"]=98; //添加到最后面obj1.hh=50;for(var prop in obj1){
console.log(prop,obj1[prop]);//属性名 属性值// prop代表obj1下的所有属性名key(包括变量key、字符key),每循环一次就给prop赋值一次属性名}结果22 04 40e 2u 8z 60undefined 80true 1[object Object] 33r 98hh 50

3、对象嵌套

var obj2 = {a:1,b:{c:9,d:8}};
console.log(obj2.b);
console.log(obj2[“b”][“c”]);//obj2下的b下的c的值

4、浅复制,复制地址

var obj={a:1,b:2,c:{d:3,e:4}};
var obj3={}
for(var prop in obj){
obj3[prop]=obj[prop];
}
obj.a=10;///obj发生变化, 复制后切段引用关系,所以源对象属性值改变,新对象不变
obj.c.d=11;//obj、obj1都发生改变,因为复制的是c对象引用地址
console.log(obj); // {a: 10, b: 2, c: {d: 11, e: 4}}
console.log(obj3); // {a: 1, b: 2, c: {d: 11, e: 4}}

5、删除某个属性,用delete

delete obj.b;
console.log(obj);

转载地址:https://blog.csdn.net/weixin_43297321/article/details/104088179 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:js 条件语句&循环语句
下一篇:js 函数

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月10日 02时05分14秒