“掌握JavaScript对象属性的核心要点”

创建JavaScript的对象,可以通过对象.属性名获取值,也可以通过对象['key']获取内容。

使用对象[‘key’]

,传入的内容都会被转换为字符串值。

"掌握JavaScript对象属性的核心要点"
var obj =
{
a:
‘test’
, b:
‘test2’
}
; obj.
a
;
//test obj[‘b’];//test2

属性读写

"掌握JavaScript对象属性的核心要点"
"掌握JavaScript对象属性的核心要点"
var obj =
{
a:
‘test’
,
b:
‘test2’
}
;
obj.
a
;
//test
obj
[
‘b’
]
;//test2

属性异常

如果读取没有的属性,通常会返回undefined,如果二维值的话,会报错。

console.
log
(
obj.
z
)
;//undefined
console.
log
(
obj.
z
.
b
)
;//Uncaught TypeError: Cannot read property ‘b’ of undefined
obj.
y
.
z
=
2
;
// TypeError: Cannot set property ‘z’ of undefined
//可以通过判断是否存在
if
(
obj.
y
)
{
//存在的话则执行
}

属性枚举

var key;
for
(
key
in
obj
)
{
console.
log
(
obj
[
key
])
;
}

属性删除

使用delete关键字

delete obj.
a
;//true
obj.
a
;
// undefined

如果这个属性设置过configurable为true,则不能删除。

默认创建的属性,configurable为false。下面讲如何设置为true。

不能删除全局变量


不能删除函数

function fd() {}
delete fd; // false

可以删除Window上的变量

ohNo = 1;
window.ohNo; // 1
delete ohNo; // true

属性检测

判断是否存在这个属性

var obj = {
  a: 'test',
  b: 'test2'
};

'a' in obj;//true
'toString' in obj //true

在原型链上的值也可以被检测到。

例如所有对象上都有toString属性.

每个属性都有一个属性:enumerable,是否可以被检测,默认为true,如果为false,则检测不到这个属性,不能遍历。

    var obj = {
      a: 'test',
      b: 'test2'
    };

    Object.defineProperty(obj, 'price', {
      enumerable: false,
      value: 1000
    });
    var key;
    for (key in obj) {
      console.log(obj[key])
    }
//只输出test和test2

判断这个属性可否被枚举,true 可以,false不能

obj.propertyIsEnumerable('price');

本文章为一只派大星站长顾凌编写,更多文章请到一只派大星网站观看。

给TA打赏
共{{data.count}}人
人已打赏
未分类

普通话发音练习与测试题目

2025-5-15 16:41:48

未分类

济宁一中第十五届科技大赛:鹏通云考系统漏洞研究

2025-5-15 16:41:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索