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>
控制台输出: