JavaScript属性的添加,删除和查找

<!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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值