<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript基础:键值对的定义和使用</title>
<!--
JavaScript的键值对可以和c#中的字典集合( dictionary<key, value> )进行比较记忆。
注意:
JavaScript中的数组和键值对在没有声明这2种类型前,是不可以使用类似索引和属性方式赋值的。
语法:
var keyValues = {"key1": "value1", "key2": "value2", "key3": "value3", "key4": "value4"};
-->
<script>
var keyValues1 = {}; /* 声明空的键值对 */
keyValues1["a"] = "A";
keyValues1["b"] = "B";
console.log("键值对keyValues1,通过类似索引赋值:");
console.log(keyValues1);
var keyValues2 = {}; /* 声明空的键值对 */
keyValues2.c = "C";
keyValues2.d = "D";
console.log("键值对keyValues2,通过类似属性赋值:");
console.log(keyValues2);
var keyValues3 = {a: "A", b: "B", c: "C", d: "D"}; /* 声明有数据的键值对 */
console.log("键值对keyValues3,声明时就赋值:");
console.log(keyValues3);
var keyValues4 = keyValues3; /* 直接取现有的键值对(有数据)赋值 */
console.log("键值对keyValues4,直接取keyValues3的值:");
console.log(keyValues4);
var keyValues5; /* 不声明变量类型 */
keyValues5["a"] = "A";
keyValues5.b = "B";
console.log("键值对keyValues5,不声明变量类型直接赋值:");
console.log(keyValues5);
</script>
</head>
<body>
<h3>JavaScript基础:键值对的定义和使用</h3>
</body>
</html>
浏览器控制台分别显示以下信息:
总结:
如果不声明变量的类型,就直接使用键值对的赋值方法(使用类似索引和属性方式赋值)会报错,报类型错误。
Uncaught TypeError: Cannot set property 'a' of undefined
不能把属性a赋值给undefined类型的变量。