提交 8872ecb2 编写于 作者: fxy060608's avatar fxy060608

docs: update syntax-uts.md

上级 0b4ccd06
......@@ -13,9 +13,8 @@ uts 采用了与 ts 基本一致的语法规范,支持绝大部分 ES6 API。
本文是 uts 的基本语法介绍。如想了解 uni-app 下如何开发 uts插件,另见文档[https://uniapp.dcloud.net.cn/plugin/uts-plugin.html](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
## 快速入门
### 基本语法
#### 声明
## 基本语法
### 声明
uts 有两种声明方式
......@@ -47,7 +46,7 @@ str = "hello world"; // 报错,不允许重新赋值
- 编译至 JavaScript 平台时,等同于 JavaScript 平台的 var (存在变量提升现象)
- 编译至 Kotlin 平台时,等同于 Kotlin 平台的 var(允许重新赋值)
#### 变量
### 变量
在 uts 中,使用变量名需要遵守一定的规则。
......@@ -59,9 +58,9 @@ str = "hello world"; // 报错,不允许重新赋值
> 注意:与 TypeScript 不同的是,uts 不允许以 $ 开头命名变量
#### 操作符
### 操作符
##### 赋值运算符(Assignment operators)
#### 赋值运算符(Assignment operators)
| 名字 | 简写的操作符 | 含义 |
| ------------------------------------------------- | ------------ | ----------- | ---------- |
......@@ -78,7 +77,7 @@ str = "hello world"; // 报错,不允许重新赋值
| 按位异或赋值(Bitwise XOR assignment) | x ^= y | x = x ^ y |
| 按位或赋值(Bitwise OR assignment) | x \|= y | x \|= y | x = x \| y |
##### 比较运算符(Comparison operators)
#### 比较运算符(Comparison operators)
| 运算符 | 描述 | 返回 true 的示例 |
| ----------------------------------- | ------------------------------------------- | ---------------- |
......@@ -91,7 +90,7 @@ str = "hello world"; // 报错,不允许重新赋值
| 小于 Less than (<) | 左边的操作数小于右边的操作数返回 true | var1<var2 |
| 小于等于 Less than or equal (<=) | 左边的操作数小于或等于右边的操作数返回 true | var1<=var2 |
##### 算数运算符(Arithmetic operators)
#### 算数运算符(Arithmetic operators)
| 运算符 | 范例 | 描述 |
| -------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------- |
......@@ -99,7 +98,7 @@ str = "hello world"; // 报错,不允许重新赋值
| 自增(++) | | 一元运算符. 将操作数的值加一. 如果放在操作数前面 (++x), 则返回加一后的值; 如果放在操作数后面 (x++), 则返回操作数原值,然后再将操作数加一. |
| 自减(--) | | 一元运算符. 将操作数的值减一. 前后缀两种用法的返回值类似自增运算符. |
##### 位运算符(Bitwise operators)
#### 位运算符(Bitwise operators)
| Operator | Usage | Description |
| ------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------- |
......@@ -111,7 +110,7 @@ str = "hello world"; // 报错,不允许重新赋值
| 算术右移 | a >> b | 把 a 的二进制表示向右移动 b 位,丢弃被移出的所有位.(译注:算术右移左边空出的位是根据最高位是 0 和 1 来进行填充的) |
| 无符号右移(左边空出位用 0 填充) | a >>> b | 把 a 的二进制表示向右移动 b 位,丢弃被移出的所有位,并把左边空出的位都填充为 0 |
##### 逻辑运算符(Logical operators)
#### 逻辑运算符(Logical operators)
| 运算符 | 范例 | 描述 |
| ------------ | ---------------- | -------- |
......@@ -119,7 +118,7 @@ str = "hello world"; // 报错,不允许重新赋值
| 逻辑或(\|\|) | expr1 \|\| expr2 | (逻辑或) |
| 逻辑非(!) | !expr | (逻辑非) |
##### 字符串运算符(String operators)
#### 字符串运算符(String operators)
除了比较操作符,它可以在字符串值中使用,连接操作符(+)连接两个字符串值相连接,返回另一个字符串,它是两个操作数串的结合。
......@@ -127,7 +126,7 @@ str = "hello world"; // 报错,不允许重新赋值
console.log("my " + "string"); // console logs the string "my string".
```
##### 条件(三元)运算符(Conditional operator)
#### 条件(三元)运算符(Conditional operator)
条件运算符是 uts 中唯一需要三个操作数的运算符。运算的结果根据给定条件在两个值中取其一。语法为:
......@@ -137,31 +136,31 @@ console.log("my " + "string"); // console logs the string "my string".
const status = age >= 18 ? "adult" : "minor";
```
### 基本类型
## 基本类型
#### 布尔值(Boolean)
### 布尔值(Boolean)
有 2 个值分别是:true 和 false。
#### 数字(Number)
### 数字(Number)
整数或浮点数,例如: 42 或者 3.14159。
#### 字符串(String)
### 字符串(String)
字符串是一串表示文本值的字符序列,例如:"hello" 。
#### null
### null
一个表明 null 值的特殊关键字。
### 字面量
## 字面量
字面量是由语法表达式定义的常量;或,通过由一定字词组成的语词表达式定义的常量
在 uts 中,你可以使用各种字面量。这些字面量是按字面意思给出的固定的值,而不是变量
#### 数组字面量
### 数组字面量
数组字面值是一个封闭在方括号对 ([]) 中的包含有零个或多个表达式的列表,其中每个表达式代表数组的一个元素。当你使用数组字面值创建一个数组时,该数组将会以指定的值作为其元素进行初始化,而其长度被设定为元素的个数。
......@@ -176,15 +175,15 @@ console.log(a[0]) // 3
数组字面值同时也是数组对象。
#### 布尔字面量
### 布尔字面量
布尔类型有两种字面量:true和false。
#### 数字字面量
### 数字字面量
数字字面量包括多种基数的整数字面量和以 10 为基数的浮点数字面量
##### 整数字面量
#### 整数字面量
整数可以用十进制(基数为 10)、十六进制(基数为 16)、二进制(基数为 2)表示。
......@@ -194,7 +193,7 @@ console.log(a[0]) // 3
- 二进制整数以 0b(或 0B)开头,只能包含数字 0 和 1。如:`0b11, 0b0011 , -0b11`
##### 浮点数字面量
#### 浮点数字面量
浮点数字面值可以有以下的组成部分:
......@@ -220,7 +219,7 @@ console.log(a[0]) // 3
.1e-23 // 0.1*10^(-23)=10^(-24)=1e-24
```
#### RegExp字面量
### RegExp字面量
正则表达式是字符被斜线围成的表达式。下面是一个正则表达式文字的一个例子。
......@@ -228,7 +227,7 @@ console.log(a[0]) // 3
const re = /ab+c/;
```
#### 字符串字面量
### 字符串字面量
字符串字面量是由双引号(")对或单引号(')括起来的零个或多个字符。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。下面的例子都是字符串字面值:
......@@ -248,7 +247,7 @@ console.log("John's cat".length)
// 结果为:10
```
##### 模板字符串
#### 模板字符串
模板字面量 是允许嵌入表达式的字符串字面量。你可以使用多行字符串和字符串插值功能。也被称为“模板字符串”。
......@@ -264,7 +263,7 @@ console.log("John's cat".length)
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
```
##### 转义特殊字符
#### 转义特殊字符
|字符 |意思 |
|-- |-- |
......@@ -277,11 +276,11 @@ var name = "Bob", time = "today";
|`\"` |双引号 |
|`\\` |反斜杠字符 |
### 控制流程
## 控制流程
#### 条件
### 条件
##### If 语句
#### If 语句
当一个逻辑条件为真,用 if 语句执行一个语句。当这个条件为假,使用可选择的 else 从句来执行这个语句。if 语句如下所示:
......@@ -299,7 +298,7 @@ if (condition_1) {
> 注意:if 和 else if 中的条件表达式必须为布尔值
##### switch 语句
#### switch 语句
switch 语句允许一个程序求一个表达式的值并且尝试去匹配表达式的值到一个 case 标签。如果匹配成功,这个程序执行相关的语句。switch 语句如下所示:
......@@ -321,7 +320,7 @@ switch (expression) {
可选的 break 语句与每个 case 语句相关联, 保证在匹配的语句被执行后程序可以跳出 switch 并且继续执行 switch 后面的语句。如果 break 被忽略,则程序将继续执行 switch 语句中的下一条语句。
##### 三元表达式
#### 三元表达式
uts 支持使用三元表达式。一个条件后面会跟一个问号(?),如果条件为 true ,则问号后面的表达式 A 将会执行;表达式 A 后面跟着一个冒号(:),如果条件为 false ,则冒号后面的表达式 B 将会执行。本运算符经常作为 if 语句的简捷形式来使用。
......@@ -368,9 +367,9 @@ function example(): string {
}
```
#### 循环
### 循环
##### for
#### for
一个 for 循环会一直重复执行,直到指定的循环条件为 false。 一个 for 语句是这个样子的:
......@@ -395,7 +394,7 @@ for (let i = 0; i < 10; i++) {
//...
}
```
##### do...while
#### do...while
do...while 语句一直重复直到指定的条件求值得到假值(false)。 一个 do...while 语句看起来像这样:
......@@ -416,7 +415,7 @@ do {
} while (i < 10);
```
##### while
#### while
一个 while 语句只要指定的条件求值为真(true)就会一直执行它的语句块。一个 while 语句看起来像这样:
......@@ -443,7 +442,7 @@ while (n < 3) {
}
```
##### break
#### break
使用 break 语句来终止循环,switch。
......@@ -464,7 +463,7 @@ while (true) {
}
```
##### continue
#### continue
使用 continue 语句来终止当前循环,并在下一次迭代时继续执行循环。
......@@ -485,7 +484,7 @@ while (true) {
}
```
#### 异常
### 异常
你可以用 throw 语句抛出一个异常并且用 try...catch 语句捕获处理它。
......@@ -509,15 +508,15 @@ try {
```
### 函数
## 函数
函数是 uts 中的基本组件之一。 一个函数是 uts 过程 — 一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。
一个 uts 函数用 function 关键字定义,后面跟着函数名和圆括号。
#### 定义函数
### 定义函数
##### 函数声明
#### 函数声明
一个函数定义(也称为函数声明,或函数语句)由一系列的 function 关键字组成,依次为:
......@@ -536,7 +535,7 @@ function add(x: string, y: string): string {
}
```
##### 函数表达式
#### 函数表达式
虽然上面的函数声明在语法上是一个语句,但函数也可以由函数表达式创建。这样的函数可以是匿名的;它不必有一个名称。例如,函数 add 也可这样来定义:
......@@ -548,7 +547,7 @@ const add = function (x: string, y: string): string {
> 注意:函数表达式不支持使用函数名,比如`const add = function add(){}`是不允许的。
#### 调用函数
### 调用函数
定义一个函数并不会自动的执行它。定义了函数仅仅是赋予函数以名称并明确函数被调用时该做些什么。调用函数才会以给定的参数真正执行这些动作。例如,一旦你定义了函数 add,你可以如下这样调用它:
......@@ -558,7 +557,7 @@ add("hello", "world");
上述语句通过提供参数 "hello" 和 "world" 来调用函数。函数执行完它的语句会返回值 "hello world"。
#### 函数作用域
### 函数作用域
在函数内定义的变量不能在函数之外的任何地方访问,因为变量仅仅在该函数的域的内部有定义。相对应的,一个函数可以访问定义在其范围内的任何变量和函数。
......@@ -571,7 +570,7 @@ function add(): string {
}
```
##### 嵌套函数
#### 嵌套函数
你可以在一个函数里面嵌套另外一个函数。嵌套(内部)函数对其容器(外部)函数是私有的。它自身也形成了一个闭包。一个闭包是一个可以自己拥有独立的环境与变量的表达式(通常是函数)。
......@@ -596,7 +595,7 @@ addSquares(3, 4); // returns 25
addSquares(4, 5); // returns 41
```
##### 命名冲突
#### 命名冲突
当同一个闭包作用域下两个参数或者变量同名时,就会产生命名冲突。更近的作用域有更高的优先权,所以最近的优先级最高,最远的优先级最低。这就是作用域链。链的第一个元素就是最里面的作用域,最后一个元素便是最外层的作用域。
......@@ -616,7 +615,7 @@ outside()(10); // 返回值为 20 而不是 10
命名冲突发生在 return x 上,inside 的参数 x 和 outside 变量 x 发生了冲突。这里的作用链域是{inside, outside}。因此 inside 的 x 具有最高优先权,返回了 20(inside 的 x)而不是 10(outside 的 x)。
#### 闭包
### 闭包
闭包是 uts 中最强大的特性之一。uts 允许函数嵌套,并且内部函数可以访问定义在外部函数中的所有变量和函数,以及外部函数能访问的所有变量和函数。
......@@ -639,9 +638,9 @@ const pet = function (name: string): () => string {
const myPet = pet("Vivie");
myPet(); // 返回结果 "Vivie"
```
#### 函数参数
### 函数参数
##### 默认参数
#### 默认参数
函数参数可以有默认值,当省略相应的参数时使用默认值。
......@@ -651,7 +650,7 @@ function multiply(a:number, b:number = 1):number {
}
multiply(5); // 5
```
#### 箭头函数
### 箭头函数
箭头函数表达式(也称胖箭头函数)相比函数表达式具有较短的语法。箭头函数总是匿名的。
......@@ -665,7 +664,7 @@ const a3 = arr.map((s): number => s.length);
console.log(a3); // logs [ 8, 6, 7, 9 ]
```
###
## 类
uts 中使用关键字 class 声明类
......@@ -677,7 +676,7 @@ class Person {
类声明由类名以及由花括号包围的类体构成。
#### 构造函数
### 构造函数
constructor 是一种用于创建和初始化 class 创建的对象的特殊方法。
......@@ -713,7 +712,7 @@ class Square extends Polygon {
}
```
#### 继承
### 继承
uts 允许使用继承来扩展现有的类。
......@@ -735,7 +734,7 @@ class Polygon {}
class Square extends Polygon {}
```
##### 覆盖方法
#### 覆盖方法
uts 对于可覆盖的成员以及覆盖后的成员需要显式修饰符:
......@@ -755,7 +754,7 @@ class Square extends Polygon {
Square.name 函数上必须加上 override 修饰符。如果没写,编译器会报错。
##### 覆盖属性
#### 覆盖属性
属性与方法的覆盖机制相同。在超类中声明然后在派生类中重新声明的属性必须以 override 开头,并且它们必须具有兼容的类型。
......@@ -769,7 +768,7 @@ class Rectangle extends Shape {
}
```
##### 调用超类实现
#### 调用超类实现
派生类中的代码可以使用 super 关键字调用其超类的函数实现:
......@@ -785,11 +784,11 @@ class FilledRectangle extends Rectangle {
```
#### 实例属性
### 实例属性
uts 中实例属性存在于类的每一个实例中。
##### 声明实例属性
#### 声明实例属性
uts 可以在类中声明属性,默认可读,可写。
......@@ -809,7 +808,7 @@ function copyAddress(address: Address): Address {
}
```
##### Getter 与 Setter
#### Getter 与 Setter
uts 支持通过 getters/setters 来截取对对象成员的访问。 它能帮助你有效的控制对对象成员的访问。
......@@ -832,7 +831,7 @@ class Employee {
}
```
##### readonly
#### readonly
uts 可以使用 readonly 关键字将属性设置为只读的。 只读属性必须在声明时或构造函数里被初始化。
......@@ -848,7 +847,7 @@ let dad = new Octopus("Man with the 8 strong legs");
dad.name = "Man with the 3-piece suit"; // 错误! name 是只读的.
```
#### 静态属性
### 静态属性
使用关键字 static 来将一个属性声明为静态属性。静态属性不会在实例中被调用,而只会被类本身调用。
......@@ -860,11 +859,11 @@ class ClassWithStaticField {
console.log(ClassWithStaticField.staticField);
```
#### 实例方法
### 实例方法
uts 中实例方法存在于类的每一个实例中。
##### 声明实例方法
#### 声明实例方法
uts 可以在类中声明实例方法。
......@@ -889,7 +888,7 @@ const square = new Rectangle(10, 10);
square.calcArea();
```
#### 静态方法
### 静态方法
使用关键字 static 来将一个方法声明为静态方法。静态方法不会在实例中被调用,而只会被类本身调用。它们经常是工具函数,比如用来创建或者复制对象。
......@@ -902,17 +901,17 @@ class ClassWithStaticMethod {
ClassWithStaticMethod.staticMethod();
```
#### 可见性修饰符
### 可见性修饰符
类的方法与属性都可以有可见性修饰符。
在 uts 中有三个可见性修饰符:private、 protected、 和 public。 默认可见性是 public。
##### public
#### public
在 uts 中可以自由的访问程序里定义的 public 成员,这也是 uts 的默认行为。
##### private
#### private
当成员被标记成 private 时,它就不能在声明它的类的外部访问。比如:
......@@ -924,7 +923,7 @@ class Cat {
new Cat().name; // 错误: 'name' 是私有的.
```
##### protected
#### protected
protected 修饰符与 private 修饰符的行为很相似,但有一点不同,protected 成员在派生类中仍然可以访问。比如:
......@@ -955,11 +954,11 @@ console.log(howard.name); // 错误
注意,我们不能在 Person 类外使用 name,但是我们仍然可以通过 Employee 类的实例方法访问,因为 Employee 是由 Person 派生而来的。
### 模块
## 模块
uts 支持将程序拆分为可按需导入的单独模块,模块中可以导入和导出各种类型的变量,如函数,字符串,数字,布尔值,类等。
#### 导出
### 导出
export 语句可以将一个文件中的函数,类等导出。比如:
......@@ -974,7 +973,7 @@ export default class Canvas {} // default 关键词支持默认导出
- 在一个文件中,export、import 可以有多个,export default 仅有一个。
- 通过 export 方式导出,在导入时要加{ },export default 则不需要。
#### 导入
### 导入
import 语句可以将另一个文件中的函数,类等导入到当前文件。比如:
......@@ -1009,15 +1008,15 @@ const test = new Test()
test.test()
```
### 内置对象
## 内置对象
#### Array
### Array
Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
##### 实例属性
#### 实例属性
###### length
#### length
数组中的元素个数
......@@ -1027,9 +1026,9 @@ console.log(clothing.length);
// expected output: 4
```
##### 实例方法
#### 实例方法
###### concat
#### concat
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
......@@ -1041,7 +1040,7 @@ console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]
```
###### copyWithin
#### copyWithin
copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。
......@@ -1055,7 +1054,7 @@ console.log(array1.copyWithin(1, 3));
// expected output: Array ["d", "d", "e", "d", "e"]
```
###### every
#### every
every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
......@@ -1066,7 +1065,7 @@ console.log(array1.every(isBelowThreshold));
// expected output: true
```
###### fill
#### fill
fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
......@@ -1085,7 +1084,7 @@ console.log(array1.fill(6));
// expected output: [6, 6, 6, 6]
```
###### filter
#### filter
filter() 方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
......@@ -1098,7 +1097,7 @@ console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
```
###### find
#### find
find() 方法返回数组中满足提供的测试函数的第一个元素的值。
......@@ -1112,7 +1111,7 @@ console.log(found);
```
###### findIndex
#### findIndex
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。
......@@ -1126,7 +1125,7 @@ console.log(array1.findIndex(isLargeNumber));
```
###### flat
#### flat
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
......@@ -1142,7 +1141,7 @@ console.log(arr2.flat(2));
// expected output: [0, 1, 2, [3, 4]]
```
###### forEach
#### forEach
forEach() 方法对数组的每个元素执行一次给定的函数。
......@@ -1154,7 +1153,7 @@ array1.forEach(element => console.log(element));
// expected output: "c"
```
###### includes
#### includes
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
......@@ -1174,7 +1173,7 @@ console.log(pets.includes('at'));
```
###### indexOf
#### indexOf
indexOf() 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
......@@ -1193,7 +1192,7 @@ console.log(beasts.indexOf('giraffe'));
```
###### join
#### join
join() 方法将一个数组的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
......@@ -1211,7 +1210,7 @@ console.log(elements.join('-'));
```
###### lastIndexOf
#### lastIndexOf
lastIndexOf() 方法返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
......@@ -1225,7 +1224,7 @@ console.log(animals.lastIndexOf('Tiger'));
// expected output: 1
```
###### map
#### map
map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
......@@ -1240,7 +1239,7 @@ console.log(map1);
```
###### pop
#### pop
pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。
......@@ -1260,7 +1259,7 @@ console.log(plants);
```
###### push
#### push
push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
......@@ -1279,7 +1278,7 @@ console.log(animals);
```
###### reduce
#### reduce
reduce() 方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
......@@ -1300,27 +1299,27 @@ console.log(sumWithInitial);
```
###### shift
#### shift
shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
###### slice
#### slice
slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
###### some
#### some
some() 方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试。它返回的是一个 Boolean 类型的值。
###### splice
#### splice
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
###### unshift
#### unshift
unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)。
##### 常见操作
#### 常见操作
- 创建数组
```ts
......@@ -1394,7 +1393,7 @@ console.log(removedItems)
const shallowCopy = fruits.slice() // this is how to make a copy
// ["Strawberry", "Mango"]
```
##### 访问数组元素
#### 访问数组元素
数组的索引是从 0 开始的,第一个元素的索引为 0,最后一个元素的索引等于该数组的 长度 减 1。
......@@ -1406,11 +1405,11 @@ const shallowCopy = fruits.slice() // this is how to make a copy
console.log(arr.0) // a syntax error
```
#### Date
### Date
创建一个 Date 实例,该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自 1970 年 1 月 1 日(UTC)起经过的毫秒数。
##### 语法
#### 语法
```ts
new Date();
......@@ -1422,8 +1421,8 @@ new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]
- 如果提供了至少两个参数,其余的参数均会默认设置为 1(如果没有指定 day 参数)或者 0(如果没有指定 day 以外的参数)。
- uts 的时间由世界标准时间(UTC)1970 年 1 月 1 日开始,用毫秒计时,一天由 86,400,000 毫秒组成。Date 对象的范围是 -100,000,000 天至 100,000,000 天(等效的毫秒值)。
-
##### 静态方法
###### now
#### 静态方法
#### now
表示自 UNIX 纪元开始(1970 年 1 月 1 日 00:00:00 (UTC))到当前时间的毫秒数。
......@@ -1439,87 +1438,87 @@ setTimeout(() => {
}, 2000)
```
##### 实例方法
#### 实例方法
###### getDate
#### getDate
根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从 1--31)。
###### getDay
#### getDay
根据本地时间,返回一个具体日期中一周的第几天,0 表示星期天。对于某个月中的第几天
###### getFullYear
#### getFullYear
根据本地时间返回指定日期的年份。
###### getHours
#### getHours
根据本地时间,返回一个指定的日期对象的小时。
###### getMilliseconds
#### getMilliseconds
根据本地时间,返回一个指定的日期对象的毫秒数。
###### getMinutes
#### getMinutes
根据本地时间,返回一个指定的日期对象的分钟数。
###### getMonth
#### getMonth
指定的日期对象的月份,为基于 0 的值(0 表示一年中的第一月)。
###### getSeconds
#### getSeconds
根据本地时间,返回一个指定的日期对象的秒数。
###### getTime
#### getTime
返回一个时间的格林威治时间数值。
###### setDate
#### setDate
根据本地时间来指定一个日期对象的天数。
###### setFullYear
#### setFullYear
根据本地时间为一个日期对象设置年份。
###### setHours
#### setHours
根据本地时间为一个日期对象设置小时数,返回从 1970-01-01 00:00:00 UTC 到更新后的 日期 对象实例所表示时间的毫秒数。
###### setMilliseconds
#### setMilliseconds
根据本地时间设置一个日期对象的豪秒数。
###### setMinutes
#### setMinutes
根据本地时间为一个日期对象设置分钟数。
###### setMonth
#### setMonth
根据本地时间为一个日期对象设置月份。
###### setSeconds
#### setSeconds
根据本地时间设置一个日期对象的秒数。
###### setTime
#### setTime
以一个表示从 1970-1-1 00:00:00 UTC 计时的毫秒数为来为 Date 对象设置时间。
#### Error
### Error
当运行时错误产生时,Error 对象会被抛出。Error 对象也可用于用户自定义的异常的基础对象。
##### 实例属性
#### 实例属性
###### message
#### message
错误消息。对于用户创建的 Error 对象,这是构造函数的第一个参数提供的字符串。
##### 示例
#### 示例
```ts
try {
......@@ -1529,11 +1528,11 @@ try {
}
```
#### JSON
### JSON
##### 静态方法
#### 静态方法
###### parse
#### parse
JSON.parse() 方法用来解析 JSON 字符串,构造由字符串描述的 UTSJSONObject。
......@@ -1552,7 +1551,7 @@ console.log(obj["result"]);
- JSON.parse 解析出来的对象,目前仅支持使用方括号[]访问
###### stringify
#### stringify
JSON.stringify() 方法将一个 uts 对象或值转换为 JSON 字符串
......@@ -1567,13 +1566,13 @@ console.log(JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)));
// expected output: ""2006-01-02T15:04:05.000Z""
```
#### Map
### Map
Map 对象保存键值对。任何值(对象或者基本类型)都可以作为一个键或一个值。
##### 实例属性
#### 实例属性
###### size
#### size
返回 Map 对象的成员数量。
......@@ -1587,9 +1586,9 @@ console.log(map1.size);
```
##### 实例方法
#### 实例方法
###### clear
#### clear
移除 Map 对象中的所有元素。
......@@ -1604,7 +1603,7 @@ console.log(map1.size);
// expected output: 0
```
####### delete
##### delete
用于移除 Map 对象中指定的元素。
......@@ -1618,26 +1617,26 @@ console.log(map1.has('bar'));
// expected result: false
```
###### get
#### get
返回某个 Map 对象中的一个指定元素。
###### has
#### has
返回一个布尔值,用来表明 Map 中是否存在指定元素。
###### set
#### set
添加或更新一个指定了键(key)和值(value)的(新)键值对。
#### Set
### Set
Set 对象是值的集合,你可以按照插入的顺序迭代它的元素。Set 中的元素只会出现一次,即 Set 中的元素是唯一的。
##### 实例属性
#### 实例属性
###### size
#### size
返回 Set 对象中元素的个数。
......@@ -1652,9 +1651,9 @@ console.log(set1.size);
// expected output: 2
```
##### 实例方法
#### 实例方法
###### add
#### add
add() 方法用来向一个 Set 对象的末尾添加一个指定的值。
......@@ -1669,7 +1668,7 @@ set1.forEach((item)=>{
// expected output: 13
})
```
###### clear
#### clear
clear() 方法用来清空一个 Set 对象中的所有元素。
......@@ -1684,7 +1683,7 @@ console.log(set1.size);
// expected output: 0
```
####### delete
##### delete
delete() 方法可以从一个 Set 对象中删除指定的元素。
......@@ -1698,17 +1697,15 @@ console.log(map1.has('bar'));
// expected result: false
```
###### forEach
#### forEach
forEach 方法会根据集合中元素的插入顺序,依次执行提供的回调函数。
###### has
#### has
has() 方法返回一个布尔值来指示对应的值 value 是否存在 Set 对象中。
## 语言参考
### 关键词
## 关键词
- `as`
* 用于类型转换。
......@@ -1805,7 +1802,7 @@ has() 方法返回一个布尔值来指示对应的值 value 是否存在 Set
- `transient`
- `volatile`
### 操作符
## 操作符
- `+`
* 相加运算符 (+) 用于对两个操作数进行相加运算。
......@@ -1878,11 +1875,11 @@ has() 方法返回一个布尔值来指示对应的值 value 是否存在 Set
* 无符号右移运算符(>>>)(零填充右移)将第一个操作数向右移动指定(二进制)位数。
- `>>>=`
## 开发指南
### 使用 uts 开发 uni-app 原生插件
- [使用 uts 开发 uni-app 原生插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
## 学习资料
### JavaScript 开发者快速上手 uts
### Android 开发者快速上手 uts
\ No newline at end of file
### JavaScript 开发者快速上手 uts
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册