第五章、基本引用类型
这是我参与8月更文挑战的第28天,活动详情查看: 8月更文挑
5.3.3 String
12. localeCompare()方法
最后一个方法是 localeCompare(),这个方法比较两个字符串,返回如下 3 个值中的一个。
- 如果按照字母表顺序,字符串应该排在字符串参数前头,则返回负值。(通常是-1,具体还要看 与实际值相关的实现。)
- 如果字符串与字符串参数相等,则返回 0。
- 如果按照字母表顺序,字符串应该排在字符串参数后头,则返回正值。(通常是 1,具体还要看 与实际值相关的实现。)
下面是一个例子:
let stringValue = "yellow";
console.log(stringValue.localeCompare("brick")); // 1
console.log(stringValue.localeCompare("yellow")); // 0
console.log(stringValue.localeCompare("zoo")); // -1
在这里,字符串"yellow"与 3 个不同的值进行了比较:"brick"、"yellow"和"zoo"。"brick" 按字母表顺序应该排在"yellow"前头,因此 localeCompare()返回 1。"yellow"等于"yellow",因 此"localeCompare()"返回 0。最后,"zoo"在"yellow"后面,因此 localeCompare()返回-1。强调 一下,因为返回的具体值可能因具体实现而异,所以最好像下面的示例中一样使用 localeCompare():
function determineOrder(value) {
let result = stringValue.localeCompare(value);
if (result < 0) {
console.log(`The string 'yellow' comes before the string '${value}'.`);
} else if (result > 0) {
console.log(`The string 'yellow' comes after the string '${value}'.`);
} else {
console.log(`The string 'yellow' is equal to the string '${value}'.`);
}
}
determineOrder("brick");
determineOrder("yellow");
determineOrder("zoo");
这样一来,就可以保证在所有实现中都能正确判断字符串的顺序了。
localeCompare()的独特之处在于,实现所在的地区(国家和语言)决定了这个方法如何比较字 符串。在美国,英语是 ECMAScript 实现的标准语言,localeCompare()区分大小写,大写字母排在小写字母前面。但其他地区未必是这种情况。
13. HTML 方法
早期的浏览器开发商认为使用 JavaScript 动态生成 HTML 标签是一个需求。因此,早期浏览器扩展 了规范,增加了辅助生成 HTML 标签的方法。下表总结了这些 HTML 方法。不过,这些方法基本上已 经没有人使用了,因为结果通常不是语义化的标记。
原始值包装类型今天就更完了,内容比较多,也是日后我们使用js语言非常重要的基石,一定要熟记,加油