<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var book={
"main title":"JavaScript",//属性名字有空格,必须用字符串来表示
"sub-title":"The Definitive Guide",//属性名字有连字符,必须使用字符串来表示
"for":"all audiences",//for是保留字,必须使用字符串来表示
author:{ //这个属性是一个对象
firtname:"David",//这里的属性名没有引号
surname: "Flanagan"
}
};
//================ 增加属性==============================
var o={x:1};
/**
动态增加o的属性 z
在JavaScript中,可以使用"."来引用属性,
也可以使用[" 属性名 "]来引用属性(关联数组或散列、映射,字典)。
JavaScript是弱类型语言,可以在程序中给任何对象创建属性。
*/
// o.z=2;
// alert(o.x); //1
// alert(""+o.z); //2
// alert(""+o.a); //undefined 因为没有这个属性(JavaScript会在本对象寻找a属性,没有找到就在原型中寻找,如果都没有就返回undefined)
//================ 删除属性==============================
/**
删除属性 x
delete 运算符只能删除自有属性。不能删除继承属性
delete成功或者没有任何作用(例如删除一个不存在的属性),返回true
*/
// alert(book["main title"]); //JavaScript
// delete o.x;
// var flag = delete book["main title"];
// // alert(o.x); //undefined
// alert(book["main title"]); //undefined
// alert(flag); //true
//================ 检测属性==============================
/**
使用 in运算符
*/
// var a="author" in book;
// var b="main title" in book;
// var c="main-title" in book;
// alert("a="+a); //true
// alert("b="+b); //true
// alert("c="+c); //false
/**
使用 hasOwnProperty 方法
只会检测自由属性,对于继承的属性是false
*/
// var d=book.hasOwnProperty("title");
// var e=book.hasOwnProperty("main title");
// alert("d="+d); //false
// alert("e="+e); //true
/**
使用 propertyIsEnumerable 方法
只会检测自由属性并且是可枚举的(使用JavaScript创建的属性一般是可枚举的),对于继承的属性是false
*/
// var f=book.propertyIsEnumerable("author");
// var g=book.propertyIsEnumerable("main title");
// alert("f="+f); //true
// alert("g="+g); //true
/**
使用 !== 运算符
*/
var h=book.x!==undefined; //false
var i=book.author!==undefined; //true
alert("h="+h);
alert("i="+i);
</script>
</body>
</html>
JavaScript属性的添加,删除和查找
最新推荐文章于 2020-12-18 10:21:05 发布