JavaScript ES5
JavaScript ES5
ECMAScript 5 是什么?
ECMAScript 5 也称为 ES5 和 ECMAScript 2009。
本章介绍 ES5 的一些最重要的特性。
ECMAScript 5 特性
这些是 2009 年发布的新特性:
- "use strict" 指令
- String.trim()
- Array.isArray()
- Array.forEach()
- Array.map()
- Array.filter()
- Array.reduce()
- Array.reduceRight()
- Array.every()
- Array.some()
- Array.indexOf()
- Array.lastIndexOf()
- JSON.parse()
- JSON.stringify()
- Date.now()
- 属性 Getter 和 Setter
- 新的对象属性和方法
ECMAScript 5 语法更改
- 对字符串的属性访问 [ ]
- 数组和对象字面量中的尾随逗号
- 多行字符串字面量
- 作为属性名称的保留字
"use strict" 指令
“use strict
” 定义 JavaScript 代码应该以“严格模式”执行。
例如,使用严格模式,不能使用未声明的变量。
您可以在所有程序中使用严格模式。它可以帮助您编写更清晰的代码,例如阻止您使用未声明的变量。
“use strict
” 只是一个字符串表达式。旧浏览器如果不理解它们就不会抛出错误。
请阅读 JS 严格模式 中的更多内容。
String.trim()
String.trim()
删除字符串两端的空白字符。
示例代码:
var str = " Hello World! ";
alert(str.trim());
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript String.trim()</h1>
<p>点击这个按钮来输出已删除空白字符的字符串。</p>
<button onclick="myFunction()">试一试</button>
<p><strong>注释:</strong>Internet Explorer 8 或更低版本不支持 trim() 方法。</p>
<script>
function myFunction() {
var str = " Hello World! ";
alert(str.trim());
}
</script>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 字符串方法 中阅读更多内容。
Array.isArray()
isArray()
方法检查对象是否为数组。
示例代码:
function myFunction() {
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = document.getElementById("demo");
x.innerHTML = Array.isArray(fruits);
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.isArray()</h1>
<p>单击按钮以检查“fruits”是否为数组。</p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
function myFunction() {
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = document.getElementById("demo");
x.innerHTML = Array.isArray(fruits);
}
</script>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组 中阅读更多内容。
Array.forEach()
forEach()
方法为每个数组元素调用一次函数。
示例代码:
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
txt = txt + value + "<br>";
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.forEach()</h1>
<p>为每个数组元素调用一次函数。</p>
<p id="demo"></p>
<script>
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;
function myFunction(value) {
txt = txt + value + "<br>";
}
</script>
</body>
</html>
运行结果:
Javascript Array.forEach() 为每个数组元素调用一次函数。 45 4 9 16 25
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.map()
这个例子给每个数组值乘以 2:
示例代码:
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
return value * 2;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.map()</h1>
<p>通过对每个数组元素执行函数来创建新数组。</p>
<p id="demo"></p>
<script>
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
document.getElementById("demo").innerHTML = numbers2;
function myFunction(value, index, array) {
return value * 2;
}
</script>
</body>
</html>
运行结果:
Javascript Array.map() 通过对每个数组元素执行函数来创建新数组。 90,8,18,32,50
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.filter()
此例用值大于 18 的元素创建一个新数组:
示例代码:
var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value) {
return value > 18;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.filter()</h1>
<p>使用通过测试的所有数组元素创建一个新数组。</p>
<p id="demo"></p>
<script>
var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
document.getElementById("demo").innerHTML = over18;
function myFunction(value, index, array) {
return value > 18;
}
</script>
</body>
</html>
运行结果:
Javascript Array.filter() 使用通过测试的所有数组元素创建一个新数组。 45,25
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.reduce()
这个例子确定数组中所有数的总和:
示例代码:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
return total + value;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.reduce()</h1>
<p>此例确定数组中所有数字的总和:</p>
<p id="demo"></p>
<script>
var numbers = [45, 4, 9, 16, 25];
var sum = numbers.reduce(myFunction);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value, index, array) {
return total + value;
}
</script>
</body>
</html>
运行结果:
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.reduceRight()
这个例子同样是确定数组中所有数的总和:
示例代码:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
return total + value;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.reduceRight()</h1>
<p>此例确定数组中所有数字的总和:</p>
<p id="demo"></p>
<script>
var numbers = [45, 4, 9, 16, 25];
var sum = numbers.reduceRight(myFunction);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value) {
return total + value;
}
</script>
</body>
</html>
运行结果:
Javascript Array.reduceRight() 此例确定数组中所有数字的总和: The sum is 99
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.every()
这个例子检查是否所有值都超过 18:
示例代码:
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value) {
return value > 18;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.every()</h1>
<p>every() 方法检查所有数组值是否通过测试。</p>
<p id="demo"></p>
<script>
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
document.getElementById("demo").innerHTML = "All over 18 is " + allOver18;
function myFunction(value, index, array) {
return value > 18;
}
</script>
</body>
</html>
运行结果:
Javascript Array.every() every() 方法检查所有数组值是否通过测试。 All over 18 is false
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.some()
这个例子检查某些值是否超过 18:
示例代码:
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.some(myFunction);
function myFunction(value) {
return value > 18;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.some()</h1>
<p>some() 方法检查某些数组值是否通过了测试。</p>
<p id="demo"></p>
<script>
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.some(myFunction);
document.getElementById("demo").innerHTML = "Some over 18 is " + allOver18;
function myFunction(value) {
return value > 18;
}
</script>
</body>
</html>
运行结果:
Javascript Array.some() some() 方法检查某些数组值是否通过了测试。 Some over 18 is true
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
Array.indexOf()
检索数组中的某个元素值并返回其位置:
示例代码:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.indexOf()</h1>
<p id="demo"></p>
<script>
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
document.getElementById("demo").innerHTML = "Apple 被找到的位置是:" + (a + 1);
</script>
<p>Internet Explorer 8 或更早的版本不支持 indexOf()。</p>
</body>
</html>
运行结果:
Javascript Array.indexOf() Apple 被找到的位置是:1 Internet Explorer 8 或更早的版本不支持 indexOf()。
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法中学习更多内容。
Array.lastIndexOf()
Array.lastIndexOf()
与 Array.indexOf()
类似,但是从数组结尾处开始检索。
示例代码:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.lastIndexOf()</h1>
<p id="demo"></p>
<script>
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");
document.getElementById("demo").innerHTML = "Apple is found in position " + (a + 1);
</script>
<p>Internet Explorer 8 或更早的版本不支持 lastIndexOf()。</p>
</body>
</html>
运行结果:
Javascript Array.lastIndexOf() Apple is found in position 3 Internet Explorer 8 或更早的版本不支持 lastIndexOf()。
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 数组迭代方法 中学习更多内容。
JSON.parse()
JSON 的一个常见用途是从 Web 服务器接收数据。
想象一下,您从Web服务器收到这条文本字符串:
'{"name":"Bill", "age":62, "city":"Seatle"}'
JavaScript 函数 JSON.parse()
用于将文本转换为 JavaScript 对象:
var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>用 JSON 字符串创建对象</h1>
<p id="demo"></p>
<script>
var txt = '{"name":"Bill Gates", "age":62, "city":"Seattle"}'
var obj = JSON.parse(txt);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.age;
</script>
</body>
</html>
运行结果:
用 JSON 字符串创建对象 Bill Gates, 62
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在我们的 JSON 教程 中学习更多内容。
JSON.stringify()
JSON 的一个常见用途是将数据发送到Web服务器。
将数据发送到 Web 服务器时,数据必须是字符串。
想象一下,我们在 JavaScript 中有这个对象:
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
请使用 JavaScript 函数 JSON.stringify() 将其转换为字符串。
var myJSON = JSON.stringify(obj);
结果将是遵循 JSON 表示法的字符串。
myJSON 现在是一个字符串,准备好发送到服务器:
示例代码:
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1> JSON.stringify() 创建 JSON 字符串</h1>
<p id="demo"></p>
<script>
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>
</body>
</html>
运行结果:
JSON.stringify() 创建 JSON 字符串 {"name":"Bill","age":62,"city":"Seatle"}
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在我们的 JSON 教程 中学习更多内容。
Date.now()
Date.now() 返回自零日期(1970 年 1 月 1 日 00:00:00:00)以来的毫秒数。
示例代码:
var timInMSs = Date.now();
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Date.now()</h1>
<p>Date.now() 是ECMAScript 5(2009)中的新功能:</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
document.getElementById("demo1").innerHTML = Date.now();
var d = new Date();
document.getElementById("demo2").innerHTML = d.getTime();
</script>
</body>
</html>
运行结果:
Javascript Date.now() Date.now() 是ECMAscript 5(2009)中的新功能: 1653012051248 1653012051248
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
Date.now()
的返回与在 Date 对象上执行 getTime() 的结果相同。
请在 JS 日期 中学习更多。
属性 Getter 和 Setter
ES5 允许您使用类似于获取或设置属性的语法来定义对象方法。
这个例子为名为 fullName 的属性创建一个 getter:
示例代码:
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
get fullName() {
return this.firstName + " " + this.lastName;
}
};
// 使用 getter 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.fullName;
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Getter 和 Setter</h1>
<p>Getter 和 Setter 允许您通过方法获取和设置属性。</p>
<p>此例为名为 fullName 的属性创建一个 getter。</p>
<p id="demo"></p>
<script>
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
get fullName() {
return this.firstName + " " + this.lastName;
}
};
// 使用 getter 来显示来自对象的数据:
document.getElementById("demo").innerHTML = person.fullName;
</script>
</body>
</html>
运行结果:
Javascript Getter 和 Setter Getter 和 Setter 允许您通过方法获取和设置属性。 此例为名为 fullName 的属性创建一个 getter。 Bill Gates
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
这个例子为语言属性创建一个 setter 和一个 getter:
示例代码:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
get lang() {
return this.language;
},
set lang(value) {
this.language = value;
}
};
// 使用 setter 设置对象属性:
person.lang = "en";
// 使用 getter 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.lang;
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Getter 和 Setter</h1>
<p>Getter 和 Setter 允许您通过方法获取和设置属性。</p>
<p>此例为 language 属性创建 setter 和 getter。</p>
<p id="demo"></p>
<script>
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
get lang() {
return this.language;
},
set lang(value) {
this.language = value;
}
};
// 使用 setter 设置对象属性:
person.lang = "en";
// 使用 getter 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.lang;
</script>
</body>
</html>
运行结果:
Javascript Getter 和 Setter Getter 和 Setter 允许您通过方法获取和设置属性。 此例为 language 属性创建 setter 和 getter。 en
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
这个例子使用 setter 来确保语言的大写更新:
示例代码:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
set lang(value) {
this.language = value.toUpperCase();
}
};
// 使用 setter 设置对象属性:
person.lang = "en";
// 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.language;
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Getter 和 Setter</h1>
<p>Getter 和 Setter 允许您通过方法获取和设置属性。</p>
<p>此例具有修改的 setter 以保护语言的大写更新。</p>
<p id="demo"></p>
<script>
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "",
set lang(value) {
this.language = value.toUpperCase();
}
};
// 使用 setter 设置对象属性:
person.lang = "en";
// 显示对象中的数据:
document.getElementById("demo").innerHTML = person.language;
</script>
</body>
</html>
运行结果:
Javascript Getter 和 Setter Getter 和 Setter 允许您通过方法获取和设置属性。 此例具有修改的 setter 以保护语言的大写更新。 EN
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
请在 JS 对象访问器 中学习更多有关 Getter 和 Setter 的知识。
新的对象属性和方法
Object.defineProperty()
是 ES5 中的新对象方法。
它允许您定义对象属性和/或更改属性的值和/或元数据。
示例代码:
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
};
// 更改属性:
Object.defineProperty(person, "language", {
value: "EN",
writable : true,
enumerable : true,
configurable : true
});
// 枚举属性
var txt = "";
for (var x in person) {
txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
完整实例:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=iso-8859-2" http-equiv="Content-Type">
</head>
<body>
<h1>JavaScript defineProperty()</h1>
<p id="demo"></p>
<script>
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
};
// 更改属性:
Object.defineProperty(person, "language", {
value: "EN",
writable : true,
enumerable : true,
configurable : true
});
// 枚举属性
txt = "";
for (var x in person) {
txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>
运行结果:
JavaScript defineProperty() Bill Gates EN
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
下一个例子是相同的代码,但它隐藏了枚举中的语言属性:
示例代码:
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
};
// 更改属性:
Object.defineProperty(person, "language", {
value: "EN",
writable : true,
enumerable : false,
configurable : true
});
// 枚举属性
var txt = "";
for (var x in person) {
txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript defineProperty()</h1>
<p id="demo"></p>
<script>
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO",
};
// 更改属性:
Object.defineProperty(person, "language", {
value: "EN",
writable : true,
enumerable : false,
configurable : true
});
// 枚举属性:
txt = "";
for (var x in person) {
txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>
运行结果:
JavaScript defineProperty() Bill Gates
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
此例创建一个 setter 和 getter 来确保语言的大写更新:
示例代码:
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO"
};
// 更改属性:
Object.defineProperty(person, "language", {
get : function() { return language },
set : function(value) { language = value.toUpperCase()}
});
// 更改语言
person.language = "en";
// 显示语言
document.getElementById("demo").innerHTML = person.language;
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript defineProperty()</h1>
<p id="demo"></p>
<script>
// 创建对象:
var person = {
firstName: "Bill",
lastName : "Gates",
language : "NO"
};
// 更改属性:
Object.defineProperty(person, "language", {
get : function() { return language },
set : function(value) { language = value.toUpperCase()}
});
// 修改语言:
person.language = "en";
// 显示语言:
document.getElementById("demo").innerHTML = person.language;
</script>
</body>
</html>
运行结果:
Javascript defineProperty() EN
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
ES5 新的对象方法
ECMAScript 5 为 JavaScript 添加了许多新的对象方法:
// 添加或更改对象属性
Object.defineProperty(object, property, descriptor)
// 添加或更改多个对象属性
Object.defineProperties(object, descriptors)
// 访问属性
Object.getOwnPropertyDescriptor(object, property)
// 将所有属性作为数组返回
Object.getOwnPropertyNames(object)
// 将可枚举属性作为数组返回
Object.keys(object)
// 访问原型
Object.getPrototypeOf(object)
// 防止向对象添加属性
Object.preventExtensions(object)
// 如果可以将属性添加到对象,则返回 true
Object.isExtensible(object)
// 防止更改对象属性(而不是值)
Object.seal(object)
// 如果对象被密封,则返回 true
Object.isSealed(object)
// 防止对对象进行任何更改
Object.freeze(object)
// 如果对象被冻结,则返回 true
Object.isFrozen(object)
请在 对象 ECMAScript5 中学习更多内容。
对字符串的属性访问
charAt()
方法返回字符串中指定索引(位置)的字符:
示例代码:
var str = "HELLO WORLD";
str.charAt(0); // 返回 H
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript 字符串方法</h1>
<p>charAt() 方法返回字符串中给定位置的字符:</p>
<p id="demo"></p>
<script>
var str = "HELLO WORLD";
document.getElementById("demo").innerHTML = str.charAt(0);
</script>
</body>
</html>
运行结果:
Javascript 字符串方法 charAt() 方法返回字符串中给定位置的字符: H
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
ECMAScript 5 允许对字符串进行属性访问:
示例代码:
var str = "HELLO WORLD";
str[0]; // 返回 H
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript 字符串方法</h1>
<p>ECMAScript 5 字符串的属性访问:</p>
<p id="demo"></p>
<script>
var str = "HELLO WORLD";
document.getElementById("demo").innerHTML = str[0];
</script>
</body>
</html>
运行结果:
Javascript 字符串方法 ECMAscript 5 字符串的属性访问: H
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
对字符串的属性访问可能有点不可预测。
请在 JS 字符串方法 中学习更多内容。
尾随逗号(Trailing Commas)
ECMAScript 5 允许在对象和数组定义中使用尾随逗号:
Object 实例
person = {
firstName: "Bill",
lastName: " Gates",
age: 62,
}
Array 实例
points = [
1,
5,
10,
25,
40,
100,
];
警告!!!
Internet Explorer 8 将崩溃。
JSON 不允许使用尾随逗号。
JSON 对象:
// 允许:
var person = '{"firstName":"Bill", "lastName":"Gates", "age":62}'
JSON.parse(person)
// 不允许:
var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,}'
JSON.parse(person)
JSON 数组:
// 允许:
points = [40, 100, 1, 5, 25, 10]
// 不允许:
points = [40, 100, 1, 5, 25, 10,]
多行字符串
如果使用反斜杠转义,ECMAScript 5 允许多行的字符串文字(字面量):
示例代码:
"Hello
Kitty!";
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript 字符串</h1>
<p>您可以使用反斜杠在文本字符串中断开代码行。</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello
Dolly!";
</script>
</body>
</html>
运行结果:
Javascript 字符串 您可以使用反斜杠在文本字符串中断开代码行。 Hello Dolly!
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
方法可能没有得到普遍的支持。
较旧的浏览器可能会以不同的方式处理反斜杠周围的空格。
一些旧的浏览器不允许 字符后面的空格。
分解字符串文字的一种更安全的方法是使用字符串添加:
示例代码:
"Hello " +
"Kitty!";
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript 字符串</h1>
<p>打破字符串中代码行的最安全方法是使用字符串添加。</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";
</script>
</body>
</html>
运行结果:
Javascript 字符串 打破字符串中代码行的最安全方法是使用字符串添加。 Hello Dolly!
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
保留字作为属性名称
ECMAScript 5 允许保留字作为属性名称:
对象实例
var obj = {name: "Bill", new: "yes"}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>ECMAScript 5</h1>
<p>ECMAScript 5 允许保留字作为属性名称:</p>
<p id="demo"></p>
<script>
var obj = {name: "Bill", new: "yes"};
document.getElementById("demo").innerHTML = obj.new;
</script>
</body>
</html>
运行结果:
ECMAscript 5 ECMAscript 5 允许保留字作为属性名称: yes
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
ES5(ECMAScript 5)浏览器支持
Chrome 23、IE 10 和 Safari 6 是第一批完全支持 ECMAScript 5 的浏览器:
Chrome 23 | IE10 / Edge | Firefox 21 | Safari 6 | Opera 15 |
2012 年 9 月 | 2012 年 9 月 | 2013 年 4 月 | 2012 年 7 月 | 2013 年 7 月 |