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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月10日 02时05分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
说说 Android 中如何使用摄像头和相册
2019-04-26
说说在 Android 中如何压缩图片
2019-04-26
说说在 Spring 中如何国际化信息
2019-04-26
说说 Spring 的容器事件体系
2019-04-26
说说在 jBPM 工作流中如何实现【撤销】功能
2019-04-26
JavaScript 开发框架横向比对(Vue、React 和 Angular)
2019-04-26
说说面向切面编程(AOP)
2019-04-26
Xftp6 中文乱码的解决方法
2019-04-26
IT 人生感悟
2019-04-26
Vue 基本功能介绍
2019-04-26
Vue 教程(2)—— Vue 实例
2019-04-26
Vue 教程(3)—— 模板语法
2019-04-26
说说 Spring AOP 的底层实现技术(JDK 与 CGLib 动态代理)
2019-04-26
Vue 教程(4)—— 计算属性和侦听器
2019-04-26
说说 Android 中如何操作音频与视频文件
2019-04-26
Vue 教程(5)—— Class 与 Style 绑定
2019-04-26
Vue 教程(6)—— 条件渲染
2019-04-26
Vue 教程(7)—— 列表渲染
2019-04-26
说说在 Spring 中如何创建增强类(AOP)
2019-04-26
Vue 教程(8)—— 事件处理
2019-04-26