JavaScript对象字面量的诸多细节问题以及属性名易错集锦

JavaScript变量的命名规则
 标识符只能由字母、数字、下划线和‘$’组成
 数字不可以作为标识符的首字符(纯数字除外:JS会自动将数字转化为字符串类型)
 
JSON 语法: 是 JavaScript 对象表示法语法的子集
1、非数字型键值必须双引号 

2、JSON 值 :

  •  数字(整数或浮点数)
  •    字符串(在双引号中)
  •  逻辑值(true 或 false)
  •     数组(在方括号中)
  •  对象(在花括号中) null


看代码解析:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
//属性值可以是任何类型,但是如果是第16行 bin:"a",改成bin:a ,那么会显示undefined,
//因为他会把a当做是一个变量。去找a,但是我们并没有var a,所以会报错显示 a没有定义。

var book={
     1345:456,   //对象字面量的属性名可加引号也可不加,建议不加,但特殊的奇怪的属性名就要加引号,比如下一行
     "123":789, //对象的属性名不强制要求遵守标识符规范,但尽量要求自己,按照标识符规范来,不要纯数字。
     age:134,
     name:"我在未来等你",
     data:2017-6-6,
     bin:"a",
     author:"lvya",
     readContent:function () {
         console.log("这是我书中的内容,有好多的····");
         return -1;
     }
};
console.log(book[123]); // 可以显示789.当对象的属性名是纯数字时,只能用特殊的用法:对象["属性名"]去使用。
console.log(typeof book.age);//通过typeof属性可以测试book的属性age的数据类型,显示number。
console.log(book.data);//结果是:2005这个data的属性值2017-6-6,如果不加双引号改成字符串,那么就当做number减法去做啦。

console.log(book["123"]);  //["属性名"],也就是[]内要字符串的属性名

 var a="name";//使用变量,会更加有灵活
 console.log(book[a]); //a是一个变量,这个变量本身就是字符串,所以直接[]可以是一个变量。
 console.log(book.name);
console.log(book.readContent);  //输出这个function的整个大括号内的东西。这个是book.readContent没有(),所以没有去执行并返回。
 console.log( typeof book.readContent); //输出function这个类型。
 //如果readContent:function () {}里面没有return的话,那么 console.log(book.readContent());这样写会有一个undefined出现,
//因为他没有返回值。那就是undefined。
 console.log(book.readContent());    // 会正常输出function中的内容:这是我书中的内容,有好多的····然后返回return的值。
 console.log("author" in book); //显示true。解释:in关键字。语法:"属性名" in 对象。返回true(表示在book对象里有author属性)or FALSE
 console.log("writeContent" in book);  //显示FALSE。表示book对象里没有writecontent属性。
 delete book.name;     //DELETE 语法
 book.name="我已经死在过去";    //修改属性值(本身有这个属性那就是修改)
 book.copyright="图灵出版社";  //增加属性名(本身没有那就是增加)
 console.log(book.name);
 console.log(book.copyright);


</script>
</body>
</html>

控制台输出:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值