From fd2d7d81c31e8d20a833d196a14764e323a962da Mon Sep 17 00:00:00 2001 From: MDN Web Docs GitHub Bot <108879845+mdn-bot@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:44:22 +0100 Subject: [PATCH] [zh-cn] sync translated content (#25456) Co-authored-by: A1lo --- files/zh-cn/_redirects.txt | 2 + files/zh-cn/_wikihistory.json | 15 +- .../core/scripting/math/index.md | 3 - .../web/html/date_and_time_formats/index.md | 2 +- .../guide/expressions_and_operators/index.md | 4 +- files/zh-cn/web/javascript/guide/index.md | 73 +++--- .../index.md | 10 +- .../guide/regular_expressions/index.md | 4 +- .../javascript/guide/text_formatting/index.md | 235 ------------------ .../javascript/guide/using_classes/index.md | 2 +- .../guide/working_with_objects/index.md | 12 +- .../reference/global_objects/string/index.md | 2 +- .../global_objects/string/string/index.md | 2 +- 13 files changed, 67 insertions(+), 299 deletions(-) rename files/zh-cn/web/javascript/guide/{numbers_and_dates => numbers_and_strings}/index.md (98%) delete mode 100644 files/zh-cn/web/javascript/guide/text_formatting/index.md diff --git a/files/zh-cn/_redirects.txt b/files/zh-cn/_redirects.txt index f5eba25e4b4c1b..3937fce10dd149 100644 --- a/files/zh-cn/_redirects.txt +++ b/files/zh-cn/_redirects.txt @@ -2806,12 +2806,14 @@ /zh-CN/docs/Web/JavaScript/Guide/EventLoop /zh-CN/docs/Web/JavaScript/Event_loop /zh-CN/docs/Web/JavaScript/Guide/Inheritance_Revisited /zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain /zh-CN/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain /zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain +/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates /zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings /zh-CN/docs/Web/JavaScript/Guide/Predefined_Core_Objects /zh-CN/docs/Web/JavaScript/Guide /zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges /zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Groups_and_backreferences /zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions/量词 /zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Quantifiers /zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Unicode_property_escapes /zh-CN/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape /zh-CN/docs/Web/JavaScript/Guide/Sameness /zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness /zh-CN/docs/Web/JavaScript/Guide/Statements /zh-CN/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/zh-CN/docs/Web/JavaScript/Guide/Text_formatting /zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings /zh-CN/docs/Web/JavaScript/Guide/The_Iterator_protocol /zh-CN/docs/Web/JavaScript/Reference/Iteration_protocols /zh-CN/docs/Web/JavaScript/Guide/Values,_variables,_and_literals /zh-CN/docs/Web/JavaScript/Guide/Grammar_and_types /zh-CN/docs/Web/JavaScript/Guide/iterable /zh-CN/docs/Web/JavaScript/Reference/Iteration_protocols diff --git a/files/zh-cn/_wikihistory.json b/files/zh-cn/_wikihistory.json index 6168f58bee91ce..f374cc08654fdb 100644 --- a/files/zh-cn/_wikihistory.json +++ b/files/zh-cn/_wikihistory.json @@ -24164,7 +24164,7 @@ "hotbaby" ] }, - "Web/JavaScript/Guide/Numbers_and_dates": { + "Web/JavaScript/Guide/Numbers_and_strings": { "modified": "2020-12-12T05:50:13.576Z", "contributors": [ "柳涤尘", @@ -24294,19 +24294,6 @@ "modified": "2020-06-28T13:50:25.946Z", "contributors": ["srq18211"] }, - "Web/JavaScript/Guide/Text_formatting": { - "modified": "2020-07-13T05:48:34.741Z", - "contributors": [ - "laampui", - "zhangchen", - "niccoming", - "evolighting", - "i-PeterZhang", - "456wyc", - "redman9", - "guangxiyu" - ] - }, "Web/JavaScript/Guide/Typed_arrays": { "modified": "2020-10-15T21:26:17.964Z", "contributors": [ diff --git a/files/zh-cn/learn_web_development/core/scripting/math/index.md b/files/zh-cn/learn_web_development/core/scripting/math/index.md index 2a59dbd67ecf37..257cd1601f3dcc 100644 --- a/files/zh-cn/learn_web_development/core/scripting/math/index.md +++ b/files/zh-cn/learn_web_development/core/scripting/math/index.md @@ -350,7 +350,4 @@ function updateBtn() { 在下一篇文章中,我们将探讨文本,以及 JavaScript 如何让我们操纵它。 -> [!NOTE] -> 如果你喜欢数学,并希望阅读更多关于它如何在 JavaScript 中实现的,那么你可以在 MDN's main JavaScript 部分读到更多关于它的内容。对于学习[数字与日期](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates)和[表达式与运算符](/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_operators#运算符优先级)来说,那是一个不错的地方。 - {{PreviousMenuNext("Learn_web_development/Core/Scripting/Variables", "Learn_web_development/Core/Scripting/Strings", "Learn_web_development/Core/Scripting")}} diff --git a/files/zh-cn/web/html/date_and_time_formats/index.md b/files/zh-cn/web/html/date_and_time_formats/index.md index c6b815fff1b6c7..d55bf6ab5d8ab4 100644 --- a/files/zh-cn/web/html/date_and_time_formats/index.md +++ b/files/zh-cn/web/html/date_and_time_formats/index.md @@ -390,6 +390,6 @@ HTML 中的日期和时间总会使用 [ASCII](https://zh.wikipedia.org/zh-cn/IS - {{HTMLElement("input")}} - {{HTMLElement("ins")}} 和 {{HTMLElement("del")}}:请查阅 `datetime` 属性,它指定了插入或删除内容的日期或本地日期和时间 - [ISO 8601 定义](https://www.iso.org/iso-8601-date-and-time-format.html) -- [JavaScript 指南](/zh-CN/docs/Web/JavaScript/Guide)中的[数字和日期](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates) +- [JavaScript 指南](/zh-CN/docs/Web/JavaScript/Guide)中的[数字和字符串](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings) - JavaScript {{jsxref("Date")}} 对象 - 以给定区域选项格式化日期和时间的 [`Intl.DateTimeFormat`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) 对象 diff --git a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md index 3bf6406cd7fd8c..7051037b1a1202 100644 --- a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md +++ b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md @@ -3,7 +3,7 @@ title: 表达式与运算符 slug: Web/JavaScript/Guide/Expressions_and_operators --- -{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}} +{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_strings")}} 本章描述了 JavaScript 的表达式和运算符,包括了赋值、比较、算数、位运算、逻辑、字符串、三元,等等。 @@ -633,4 +633,4 @@ var objectName = new objectType([param1, param2, ..., paramN]); super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]); ``` -{{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}} +{{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_strings")}} diff --git a/files/zh-cn/web/javascript/guide/index.md b/files/zh-cn/web/javascript/guide/index.md index 2bc03e75bfd135..eb12a78b1a9eed 100644 --- a/files/zh-cn/web/javascript/guide/index.md +++ b/files/zh-cn/web/javascript/guide/index.md @@ -71,32 +71,38 @@ JavaScript 指南向你介绍如何使用 [JavaScript](/zh-CN/docs/Web/JavaScrip - [逻辑运算符](/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_operators#逻辑运算符) - [条件(三元)运算符](/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_operators#条件(三元)运算符) -## 数字与日期 +## 数字与字符串 -概述:[数字与日期](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates) +概述:[数字与字符串](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings) -- [`Number` 字面量](/zh-CN/docs/WJavaScript/概述:Guide/Numbers_and_dates#数字) -- [`Number` 对象](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates#数字对象) -- [`Math` 对象](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates#数学对象(math)) -- [`Date` 对象](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates#日期对象) +- [数字](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings#数字) +- [`Number` 对象](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings#数字对象) +- [`Math` 对象](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings#数学对象(math)) +- [字符串](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings#字符串) +- [`String` 对象](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings#string_对象) +- [模板字面量](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings#模板字面量) -## 文本格式化 +## 表示日期与时间 -概述:[文本格式化](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting) +概述:[表示日期与时间](/zh-CN/docs/Web/JavaScript/Guide/Representing_dates_times) -- [字符串字面量](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting#字符串) -- [字符串对象](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting#字符串对象) -- [模版字面量](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting#多行模板字符串) -- [国际化](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting#国际化) -- [正则表达式](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions) +- [`Date` 对象](/zh-CN/docs/Web/JavaScript/Guide/Representing_dates_times#date_对象) + +## 正则表达式 + +概述:[正则表达式](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions) + +- [创建一个正则表达式](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions#创建一个正则表达式) +- [编写一个正则表达式的模式](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions#编写一个正则表达式的模式) + - [断言](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Assertions) + - [字符类](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Character_classes) + - [组和反向引用](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Groups_and_backreferences) + - [量词](/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions/Quantifiers) ## 索引集合 概述:[索引集合](/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections) -- [数组](/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections#map%E6%95%B0%E7%BB%84) -- [类型数组]() - ## 带键集合 概述:[带键集合](/zh-CN/docs/Web/JavaScript/Guide/Keyed_collections) @@ -113,25 +119,26 @@ JavaScript 指南向你介绍如何使用 [JavaScript](/zh-CN/docs/Web/JavaScrip - [对象和属性](/zh-CN/docs/Web/JavaScript/Guide/Working_with_objects#对象和属性) - [创建对象](/zh-CN/docs/Web/JavaScript/Guide/Working_with_objects#创建新对象) - [定义方法](/zh-CN/docs/Web/JavaScript/Guide/Working_with_objects#定义方法) -- [getter 和 setter](/zh-CN/docs/Web/JavaScript/Guide/Working_with_objects#定义_getters_与_setters) +- [getter 和 setter](/zh-CN/docs/Web/JavaScript/Guide/Working_with_objects#定义_getter_与_setter) -## 对象模型的细节 +## 使用类 -概述:[对象模型的细节](/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain) +概述:[使用类](/zh-CN/docs/Web/JavaScript/Guide/Using_classes) -- [基于原型的面向对象编程](/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain#class-based_vs_prototype-based_languages) -- [创建对象层次结构](/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#%E5%88%9B%E5%BB%BA%E5%B1%82%E7%BA%A7%E7%BB%93%E6%9E%84) -- [继承](/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%B1%9E%E6%80%A7) +- [声明一个类](/zh-CN/docs/Web/JavaScript/Guide/Using_classes#声明一个类) +- [各种类的特征](/zh-CN/docs/Web/JavaScript/Guide/Using_classes#构造函数) +- [扩展与继承](/zh-CN/docs/Web/JavaScript/Guide/Using_classes#扩展与继承) +- [为什么用类?](/zh-CN/docs/Web/JavaScript/Guide/Using_classes#为什么用类?) -## Promises +## Promise -概述:[Promises](/zh-CN/docs/Web/JavaScript/Guide/Using_promises) +概述:[Promise](/zh-CN/docs/Web/JavaScript/Guide/Using_promises) -- [约定](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#%E7%BA%A6%E5%AE%9A) -- [链式调用](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#%E9%93%BE%E5%BC%8F%E8%B0%83%E7%94%A8) -- [错误传递](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#%E9%94%99%E8%AF%AF%E4%BC%A0%E9%80%92) -- [组合](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#%E7%BB%84%E5%90%88) -- [时序](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#%E6%97%B6%E5%BA%8F) +- [保证](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#保证) +- [链式调用](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#链式调用) +- [错误处理](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#错误处理) +- [组合](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#组合) +- [时序](/zh-CN/docs/Web/JavaScript/Guide/Using_promises#时序) ## 迭代器与生成器 @@ -141,6 +148,14 @@ JavaScript 指南向你介绍如何使用 [JavaScript](/zh-CN/docs/Web/JavaScrip - [可迭代对象](/zh-CN/docs/Web/JavaScript/Guide/Iterators_and_generators#可迭代对象) - [生成器](/zh-CN/docs/Web/JavaScript/Guide/Iterators_and_generators#生成器函数) +## 国际化 + +概述:[国际化](/zh-CN/docs/Web/JavaScript/Guide/Internationalization) + +- [日期与时间格式化](/zh-CN/docs/Web/JavaScript/Guide/Internationalization#日期与时间格式化) +- [Number 格式化](/zh-CN/docs/Web/JavaScript/Guide/Internationalization#number_格式化) +- [排序规则](/zh-CN/docs/Web/JavaScript/Guide/Internationalization#排序规则) + ## 元编程 概述:[元编程](/zh-CN/docs/Web/JavaScript/Guide/Meta_programming) diff --git a/files/zh-cn/web/javascript/guide/numbers_and_dates/index.md b/files/zh-cn/web/javascript/guide/numbers_and_strings/index.md similarity index 98% rename from files/zh-cn/web/javascript/guide/numbers_and_dates/index.md rename to files/zh-cn/web/javascript/guide/numbers_and_strings/index.md index 3ea1647f9b7edc..735809fb7e3fc5 100644 --- a/files/zh-cn/web/javascript/guide/numbers_and_dates/index.md +++ b/files/zh-cn/web/javascript/guide/numbers_and_strings/index.md @@ -1,9 +1,11 @@ --- -title: 数字和日期 -slug: Web/JavaScript/Guide/Numbers_and_dates +title: 数字和字符串 +slug: Web/JavaScript/Guide/Numbers_and_strings --- -{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Expressions_and_operators", "Web/JavaScript/Guide/Text_formatting")}}本章节介绍了在 JavaScript 中使用数字和日期来处理和执行计算的概念,对象和函数。 +{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Expressions_and_operators", "Web/JavaScript/Guide/Representing_dates_times")}} + +本章节介绍了在 JavaScript 中使用数字和日期来处理和执行计算的概念,对象和函数。 本章节介绍如何掌握 Javascript 里的数字和日期类型 @@ -263,4 +265,4 @@ function JSClock() { 最后,如果`hour`是 12 或者更大,条件表达式会在`temp`后拼接"P.M.",否则拼接"A.M."。 -{{PreviousNext("Web/JavaScript/Guide/Expressions_and_operators", "Web/JavaScript/Guide/Text_formatting")}} +{{PreviousNext("Web/JavaScript/Guide/Expressions_and_operators", "Web/JavaScript/Guide/Representing_dates_times")}} diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/index.md b/files/zh-cn/web/javascript/guide/regular_expressions/index.md index 8d11cdd17a3c03..af738376979e33 100644 --- a/files/zh-cn/web/javascript/guide/regular_expressions/index.md +++ b/files/zh-cn/web/javascript/guide/regular_expressions/index.md @@ -3,7 +3,7 @@ title: 正则表达式 slug: Web/JavaScript/Guide/Regular_expressions --- -{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Text_formatting", "Web/JavaScript/Guide/Indexed_collections")}} +{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Representing_dates_times", "Web/JavaScript/Guide/Indexed_collections")}} 正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。这些模式被用于 {{jsxref("RegExp")}} 的 {{jsxref("RegExp.exec", "exec")}} 和 {{jsxref("RegExp.test", "test")}} 方法,以及 {{jsxref("String")}} 的 {{jsxref("String.match", "match")}}、{{jsxref("String.matchAll", "matchAll")}}、{{jsxref("String.replace", "replace")}}、{{jsxref("String.search", "search")}} 和 {{jsxref("String.split", "split")}} 方法。本章介绍 JavaScript 正则表达式。 @@ -939,4 +939,4 @@ console.log(output.join("\n")); ``` -{{PreviousNext("Web/JavaScript/Guide/Text_formatting", "Web/JavaScript/Guide/Indexed_collections")}} +{{PreviousNext("Web/JavaScript/Guide/Representing_dates_times", "Web/JavaScript/Guide/Indexed_collections")}} diff --git a/files/zh-cn/web/javascript/guide/text_formatting/index.md b/files/zh-cn/web/javascript/guide/text_formatting/index.md deleted file mode 100644 index 345791409d8a4d..00000000000000 --- a/files/zh-cn/web/javascript/guide/text_formatting/index.md +++ /dev/null @@ -1,235 +0,0 @@ ---- -title: 文本格式化 -slug: Web/JavaScript/Guide/Text_formatting ---- - -{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Numbers_and_dates", "Web/JavaScript/Guide/Regular_expressions")}} - -本章介绍在 Javascript 中如何使用字符串与文本内容。 - -## 字符串 - -JavaScript 中的 {{Glossary("String")}} 类型用于表示文本型的数据。它是由无符号整数值(16bit)作为元素而组成的集合。字符串中的每个元素在字符串中占据一个位置。第一个元素的 index 值是 0,下一个元素的 index 值是 1,以此类推。字符串的长度就是字符串中所含的元素个数。你可以通过 String 字面值或者 String 对象两种方式创建一个字符串。 - -### String 字面量 - -可以使用单引号或双引号创建简单的字符串: - -```js -"foo"; -"bar"; -``` - -可以使用转义序列来创建更复杂的字符串: - -#### 16 进制转义序列 - -\x 之后的数值将被认为是一个 16 进制数。 - -```js -"\xA9"; // "©" -``` - -#### Unicode 转义序列 - -Unicode 转义序列在\u 之后需要至少 4 个字符。 - -```js -"\u00A9"; // "©" -``` - -#### Unicode 字元逸出 - -这是 ECMAScript 6 中的新特性。有了 Unicode 字元逸出,任何字符都可以用 16 进制数转义,这使得通过 Unicode 转义表示大于`0x10FFFF`的字符成为可能。使用简单的 Unicode 转义时通常需要分别写字符相应的两个部分(译注:大于 0x10FFFF 的字符需要拆分为相应的两个小于 0x10FFFF 的部分)来达到同样的效果。 - -请参阅 {{jsxref("String.fromCodePoint()")}} 或 {{jsxref("String.prototype.codePointAt()")}}。 - -```js -"\u{2F804}"; - -// the same with simple Unicode escapes -"\uD87E\uDC04"; -``` - -### 字符串对象 - -{{jsxref("String")}} 对象是对原始 string 类型的封装 . - -```js -const foo = new String("foo"); // 创建一个 String 对象 -console.log(foo); // 输出:[String: 'foo'] -typeof foo; // 返回 'object' -``` - -你可以在 String 字面值上使用 String 对象的任何方法—JavaScript 自动把 String 字面值转换为一个临时的 String 对象,然后调用其相应方法,最后丢弃此临时对象。在 String 字面值上也可以使用 String.length 属性。 - -除非必要,应该尽量使用 String 字面值,因为 String 对象的某些行为可能并不与直觉一致。举例: - -```js -const firstString = "2 + 2"; //创建一个字符串字面量 -const secondString = new String("2 + 2"); // 创建一个字符串对象 -eval(firstString); // 返回数字 4 -eval(secondString); // 返回包含 "2 + 2" 的字符串对象 -``` - -`String` 对象有一个属性 `length`,标识了字符串中 UTF-16 的码点个数。举例,下面的代码把 13 赋值给了`helloLength`,因为 "Hello, World!" 包含 13 个字符,每个字符用一个 UTF-16 码点表示。你可以通过数组的方式访问每一个码点,但你不能修改每个字符,因为字符串是不变的类数组对象: - -```js -const hello = "Hello, World!"; -const helloLength = hello.length; -hello[0] = "L"; // 无效,因为字符串是不变的 -hello[0]; // 返回 "H" -``` - -Unicode 标量值(Unicode scalar value)大于 U+FFFF 的字符(比如中文、日文、韩文、越南语中的一些不常用的文字或者 emoji 表情)使用 2 个代理码点存储在 UTF-16 中。比如,一个包含 U+20BB7“𠮷”字符的字符串,其长度为 2。使用括号访问单个码点的时候,可能不会得到你所期望的结果,你得到的可能是一个不匹配字符串位置的代理码点,并且其违反了 Unicode 规范。请参阅 {{jsxref("String.fromCodePoint()")}} 或 {{jsxref("String.prototype.codePointAt()")}}。 - -`String`对象有许多方法:举例来说有些方法返回字符串本身的变体,如 `substring` 和`toUpperCase`. - -下表总结了 {{jsxref("String")}} 对象的方法。 - -| 方法 | 描述 | -| ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| {{jsxref("String.charAt", "charAt")}}, {{jsxref("String.charCodeAt", "charCodeAt")}}, {{jsxref("String.codePointAt", "codePointAt")}} | 返回字符串指定位置的字符或者字符编码。 | -| {{jsxref("String.indexOf", "indexOf")}}, {{jsxref("String.lastIndexOf", "lastIndexOf")}} | 分别返回字符串中指定子串的位置或最后位置。 | -| {{jsxref("String.startsWith", "startsWith")}}, {{jsxref("String.endsWith", "endsWith")}}, {{jsxref("String.includes", "includes")}} | 返回字符串是否以指定字符串开始、结束或包含指定字符串。 | -| {{jsxref("String.concat", "concat")}} | 连接两个字符串并返回新的字符串。 | -| {{jsxref("String.fromCharCode", "fromCharCode")}}, {{jsxref("String.fromCodePoint", "fromCodePoint")}} | 从指定的 Unicode 值序列构造一个字符串。这是一个 String 类方法,不是实例方法。 | -| {{jsxref("String.split", "split")}} | 通过将字符串分离成一个个子串来把一个 String 对象分裂到一个字符串数组中。 | -| {{jsxref("String.slice", "slice")}} | 从一个字符串提取片段并作为新字符串返回。 | -| {{jsxref("String.substring", "substring")}}, {{jsxref("String.substr", "substr")}} | 分别通过指定起始和结束位置,起始位置和长度来返回字符串的指定子集。 | -| {{jsxref("String.match", "match")}}, {{jsxref("String.replace", "replace")}}, {{jsxref("String.search", "search")}} | 通过正则表达式来工作。 | -| {{jsxref("String.toLowerCase", "toLowerCase")}}, {{jsxref("String.toUpperCase", "toUpperCase")}} | 分别返回字符串的小写表示和大写表示。 | -| {{jsxref("String.normalize", "normalize")}} | 按照指定的一种 Unicode 正规形式将当前字符串正规化。 | -| {{jsxref("String.repeat", "repeat")}} | 将字符串内容重复指定次数后返回。 | -| {{jsxref("String.trim", "trim")}} | 去掉字符串开头和结尾的空白字符。 | - -### 多行模板字符串 - -模板字符串是一种允许内嵌表达式的 String 字面值。可以用它实现多行字符串或者字符串内插等特性。 - -模板字符串使用反勾号 (\` \`) ([grave accent](https://en.wikipedia.org/wiki/Grave_accent)) 包裹内容而不是单引号或双引号。模板字符串可以包含占位符。占位符用美元符号和花括号标识 (`${expression}`). - -#### 多行 - -源代码中插入的任何新行开始字符都作为模板字符串的内容。使用一般的字符串时,为了创建多行的字符串不得不用如下语法: - -```js -console.log( - "string text line 1\n\ -string text line 2", -); -// "string text line 1 -// string text line 2" -``` - -为了实现同样效果的多行字符串,现在可以写成如下形式: - -```js -console.log(`string text line 1 -string text line 2`); -// "string text line 1 -// string text line 2" -``` - -#### 嵌入表达式 - -为了在一般的字符串中嵌入表达式,需要使用如下语法: - -```js -const five = 5; -const ten = 10; -console.log( - "Fifteen is " + (five + ten) + " and not " + (2 * five + ten) + ".", -); -// "Fifteen is 15 and not 20." -``` - -现在,使用模板字符串,可以使用语法糖让类似功能的实现代码更具可读性: - -```js -const five = 5; -const ten = 10; -console.log(`Fifteen is ${five + ten} and not ${2 * five + ten}.`); -// "Fifteen is 15 and not 20." -``` - -更多信息,请阅读 [JavaScript reference](/zh-CN/docs/Web/JavaScript/Reference) 中的 [Template literals](/zh-CN/docs/Web/JavaScript/Reference/Template_literals)。 - -## 国际化 - -{{jsxref("Intl")}} 对象是 ECMAScript 国际化 API 的命名空间,它提供了语言敏感的字符串比较,数字格式化和日期时间格式化功能。{{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, 和 {{jsxref("DateTimeFormat")}} 对象的构造函数是`Intl`对象的属性。 - -### 日期和时间格式化 - -{{jsxref("DateTimeFormat")}} 对象在日期和时间的格式化方面很有用。下面的代码把一个日期格式化为美式英语格式。(不同时区结果不同.) - -```js -// July 17, 2014 00:00:00 UTC: -const july172014 = new Date("2014-07-17"); - -const options = { - year: "2-digit", - month: "2-digit", - day: "2-digit", - hour: "2-digit", - minute: "2-digit", - timeZoneName: "short", -}; -const americanDateTime = new Intl.DateTimeFormat("en-US", options).format; - -// 本地时区会根据你的设置而有所不同。 -// 在 CEST(中欧夏令时)中,输出:07/17/14, 02:00 AM GMT+2。 -// 在 PDT(太平洋夏令时)中,输出:07/16/14, 05:00 PM GMT-7。 -console.log(americanDateTime(july172014)); -``` - -### 数字格式化 - -{{jsxref("NumberFormat")}} 对象在数字的格式化方面很有用,比如货币数量值。 - -```js -var gasPrice = new Intl.NumberFormat("en-US", { - style: "currency", - currency: "USD", - minimumFractionDigits: 3, -}); - -console.log(gasPrice.format(5.259)); // $5.259 - -var hanDecimalRMBInChina = new Intl.NumberFormat("zh-CN-u-nu-hanidec", { - style: "currency", - currency: "CNY", -}); - -console.log(hanDecimalRMBInChina.format(1314.25)); // ¥ 一,三一四。二五 -``` - -### 定序 - -{{jsxref("Collator")}} 对象在字符串比较和排序方面很有用。 - -举例,德语中*有两种不同的排序方式 电话本(phonebook)* 和 字典(_dictionary)_. 电话本排序强调发音,比如在排序前“ä”, “ö”等被扩展为“ae”, “oe”等发音。 - -```js -var names = ["Hochberg", "Hönigswald", "Holzman"]; - -var germanPhonebook = new Intl.Collator("de-DE-u-co-phonebk"); - -// as if sorting ["Hochberg", "Hoenigswald", "Holzman"]: -console.log(names.sort(germanPhonebook.compare).join(", ")); -// logs "Hochberg, Hönigswald, Holzman" -``` - -有些德语词包含变音,所以在字典中忽略变音进行排序是合理的 (除非待排序的单词只有变音部分不同:_schon_ 先于 _schön_). - -```js -var germanDictionary = new Intl.Collator("de-DE-u-co-dict"); - -// as if sorting ["Hochberg", "Honigswald", "Holzman"]: -console.log(names.sort(germanDictionary.compare).join(", ")); -// logs "Hochberg, Holzman, Hönigswald" -``` - -关于{{jsxref("Intl")}} API 的更多信息,请参考 [Introducing the JavaScript Internationalization API](https://hacks.mozilla.org/2014/12/introducing-the-javascript-internationalization-api/)。 - -{{PreviousNext("Web/JavaScript/Guide/Numbers_and_dates", "Web/JavaScript/Guide/Regular_expressions")}} diff --git a/files/zh-cn/web/javascript/guide/using_classes/index.md b/files/zh-cn/web/javascript/guide/using_classes/index.md index 2c73d4daf8023f..9e7b54122cc6be 100644 --- a/files/zh-cn/web/javascript/guide/using_classes/index.md +++ b/files/zh-cn/web/javascript/guide/using_classes/index.md @@ -15,7 +15,7 @@ JavaScript 是一个基于原型的语言——一个对象的行为取决于它 ## 类的概述 -如果你已经有动手实践过 JavaScript 的经历,或是阅读指南一路过来,你可能已经用过类了,即便你还没有自己创建过。例如,你可能会对[这个](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_dates)很熟悉: +如果你已经有动手实践过 JavaScript 的经历,或是阅读指南一路过来,你可能已经用过类了,即便你还没有自己创建过。例如,你可能会对[这个](/zh-CN/docs/Web/JavaScript/Guide/Representing_dates_times)很熟悉: ```js const bigDay = new Date(2019, 6, 19); diff --git a/files/zh-cn/web/javascript/guide/working_with_objects/index.md b/files/zh-cn/web/javascript/guide/working_with_objects/index.md index 9c5a623980b5c6..b38dd4bfe85f24 100644 --- a/files/zh-cn/web/javascript/guide/working_with_objects/index.md +++ b/files/zh-cn/web/javascript/guide/working_with_objects/index.md @@ -3,7 +3,7 @@ title: 使用对象 slug: Web/JavaScript/Guide/Working_with_objects --- -{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Text_formatting", "Web/JavaScript/Guide/Details_of_the_Object_Model")}} +{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Keyed_collections", "Web/JavaScript/Guide/Using_classes")}} JavaScript 的设计是一个简单的基于对象的范式。一个对象就是一系列属性的集合,一个属性包含一个名和一个值。一个属性的值可以是函数,这种情况下属性也被称为*方法*。除了浏览器里面预定义的那些对象之外,你也可以定义你自己的对象。本章节讲述了怎么使用对象、属性、函数和方法,怎样实现自定义对象。 @@ -547,11 +547,11 @@ fruit == fruitbear; // return true fruit === fruitbear; // return true ``` -了解更多关于比较操作符的用法,查看 [Comparison operators](/zh-CN/docs/Web/JavaScript/Reference/Operators). +了解更多关于比较运算符的用法,查看[相等运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators#相等运算符)。 -## 附加参考 +## 参见 -- 想要深入了解,请阅读[details of javaScript's objects model](/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)。 -- 想要学习 ECMAScript 2015 中类(一种创建对象的新方式),请阅读 [JavaScript classes](/zh-CN/docs/Web/JavaScript/Reference/Classes) 章节。 +- [继承与原型链](/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain) +- [类](/zh-CN/docs/Web/JavaScript/Reference/Classes) -{{PreviousNext("Web/JavaScript/Guide/Regular_expressions", "Web/JavaScript/Guide/Details_of_the_Object_Model")}} +{{PreviousNext("Web/JavaScript/Guide/Keyed_collections", "Web/JavaScript/Guide/Using_classes")}} diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/index.md index 3241a3cbd8cc51..03f499c54dc318 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/index.md @@ -368,5 +368,5 @@ String(undefinedVar); // "undefined" ## 参见 -- [文本格式化](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting)指南 +- [数字与字符串](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings)指南 - {{jsxref("RegExp")}} diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/string/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/string/index.md index 83cabdbd2bb963..07a62e8c6726e6 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/string/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/string/index.md @@ -73,4 +73,4 @@ String(sym); // "Symbol(示例)" ## 参见 -- [JavaScript 指南中的文本格式化](/zh-CN/docs/Web/JavaScript/Guide/Text_formatting) +- [数字与字符串](/zh-CN/docs/Web/JavaScript/Guide/Numbers_and_strings)指南