JavaScript 对象原型
如何显示JavaScript对象?
显示JavaScript对象将输出[object Object]。
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>显示JavaScript对象将输出[object Object]:</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: 30,
city: "New York"
};
document.getElementById("demo").innerHTML = person;
</script>
</body>
</html>
显示JavaScript对象的一些常见解决方案有:
- 按名称显示对象属性
- 在循环中显示对象属性
- 使用Object.values()显示对象
- 使用JSON.stringify()显示对象
显示对象属性
对象的属性可以显示为字符串:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>显示对象属性:</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: 30,
city: "New York"
};
document.getElementById("demo").innerHTML = person.name + ", " + person.age + ", " + person.city;
</script>
</body>
</html>
在循环中显示对象
对象的属性可以在循环中收集:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>显示对象属性:</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: 30,
city: "New York"
};
let txt = "";
for (let x in person) {
txt += person[x] + " ";
};
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>
提示:必须在循环中使用person[x]。person.x将不起作用(因为x是一个变量)。
使用Object.values()
可以使用object.values() 将任何JavaScript对象转换为数组:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>Object.values() 讲对象转换为数组.</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: 30,
city: "New York"
};
document.getElementById("demo").innerHTML = Object.values(person);
</script>
</body>
</html>
使用JSON.stringify()
任何JavaScript对象都可以通过JavaScript函数JSON.stringify() 进行字符串化(转换为字符串):
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>以 JSON 格式显示对象:</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: 30,
city: "New York"
};
document.getElementById("demo").innerHTML = JSON.stringify(person);
</script>
</body>
</html>
结果将是一个遵循JSON格式的字符串:
{"name":"John","age":50,"city":"New York"}
JSON.stringify()包含在JavaScript中,并且在所有主流浏览器中都受支持。
Stringify Dates
JSON.stringify将日期转换为字符串:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>JSON.stringify将日期转换为字符串:</p>
<p id="demo"></p>
<script>
var person = {
name: "John",
today: new Date()
};
document.getElementById("demo").innerHTML = JSON.stringify(person);
</script>
</body>
</html>
Stringify Functions
JSON.stringify 不能转换函数:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>JSON.stringify 不能转换函数:</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: function () {return 30;}
};
document.getElementById("demo").innerHTML = JSON.stringify(person);
</script>
</body>
</html>
解决方法是,在字符串化之前将函数转换为字符串。
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 对象</h2>
<p>JSON.stringify 不能转换函数:</p>
<p>你可以先把它转换为string:</p>
<p id="demo"></p>
<script>
const person = {
name: "John",
age: function () {return 30;}
};
person.age = person.age.toString();
document.getElementById("demo").innerHTML = JSON.stringify(person);
</script>
</body>
</html>
Stringify Arrays
stringify可以转换 JavaScript 数组:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 数组</h2>
<p>JSON.stringify 可以转换 arrays:</p>
<p id="demo"></p>
<script>
const arr = ["John", "Peter", "Sally", "Jane"];
document.getElementById("demo").innerHTML = JSON.stringify(arr);
</script>
</body>
</html>