Javascript 对象属性CURD操作

1.应用场景

了解js对象的属性相关操作, 应用于开发中.

2.学习/操作

1.介绍

js中有句名言: 一切皆对象

在编程语言里, 相同点, 对象是存储数据的容器, 而且都常是使用{}来表示,

但是声明对象的方式有很多种, 不同的语言也不尽相同.

js中声明对象方式也有集中, 这里主要使用字面量声明 即{}

var obj = {};

var test = {};

备注:

Javascript中对象属性可以加引号, 也可以不加引号, 但是某些不合法的属性名命名,就必要加引号。

更多介绍:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object   //MDN - Object

提示:

对象的属性[属性+方法],可以认为根据对象属性的值是否为函数,又区分为属性[狭义]和方法

2.添加属性

对象{}支持使用 .或者 [] 来添加属性,

但是前者不支持属性名为变量[即 如果属性名为变量, 是不识别的, 直接当做字符串使用]

数组补充:

code:

var test = {};
var nameVar = 'name';
test.nameVar = 'william';
"william"
test
{nameVar: "william"}
var test = {};
var nameVar = 'name';
test[nameVar] = 'william';
"william"
test
{name: "william"}

其实也可以使用Array

截图:

注意:

使用[]时, 要引号, 如果不加, 则认为是变量, 常量. 如果没有找到,则返回的结果为undefined

3.删除属性[即删除属性值]

delete 对象.属性名  即可

如果删除不存在的属性,也会返回true

4.查询属性 / 通过属性获取属性值

判断属性是否存在, 直接使用.或者[] 即可,

存在, 返回属性值,

不存在, 返回undefined  //obj.unknownMethod() 如果是查询方法[属性为函数], 如果不存在,会报错, 因为obj.unknownMethod的值是undefined,而不是一个函数。

5.更新属性名 / 更新属性值

更新属性值:

对象.属性名 = 新值 // 对象['属性名'] = 新值  // 对象[属性名] = 新值  ==> 最后一项, 有时候也能正确执行, 但是有时会是错误的[即类型涉及到类型转换], 不推荐.

更新属性名:

直接更新: js不支持修改属性名

间接修改: 添加新的属性, 赋值[原属性的属性值], 删除旧的属性.

后续补充

...

3.问题/补充

1. 总说, null表示空对象, 但是如果动态添加属性, 会出现报错, 原因TBD, 如何解决?TBD

原因: 

由于任意对象(除了null)都是Object的实例,

所以instanceof运算符可以判断一个值是否为非null的对象。

4.参考

https://www.cnblogs.com/lakeslove/p/6377893.html  //使用变量作为js对象的属性名

https://wangdoc.com/javascript/types/object.html   //阮一峰 - 对象

后续补充

...

猜你喜欢

转载自blog.csdn.net/william_n/article/details/105861461