提交 3844bfd4 编写于 作者: W wizardforcel

2020-06-06 19:16:28

上级 8da008c3
......@@ -11,7 +11,7 @@
3. 如果参数数量相同,则它们的类型必须不同
4. 所有重载必须具有相同的返回类型
还应注意,f **功能实现必须与所有重载签名**兼容。 它应该始终是列表中的**最后一个,并以`any`类型或[联合类型](https://howtodoinjava.com/typescript/union-types/)作为其参数的类型。**
还应注意,**函数实现必须与所有重载签名**兼容。 它应该始终是列表中的**最后一个,并以`any`类型或[联合类型](https://howtodoinjava.com/typescript/union-types/)作为其参数的类型。**
## 函数重载示例
......
......@@ -12,9 +12,9 @@ Transpiler 或**源到源编译器**是读取用一种编程语言编写的源
功能很棒,但是大多数浏览器直到现在都不支持该规范。 因此,用 ES6 编写的任何 UI 应用规范都无法在大多数浏览器中运行。 要运行这些应用,必须将此 ES6 源代码转换为受支持的 JavaScript 版本 ES5。 几乎所有浏览器都支持 ES5,并且是迄今为止最稳定的版本。
> **ES6** –为 JavaScript 带来“类型”。 使它更接近强类型语言,例如 Java,C#。 到目前为止,大多数浏览器都不支持它。 必须将其转换为 ES5 才能在浏览器中执行。
> **ES6** – 为 JavaScript 带来“类型”。 使它更接近强类型语言,例如 Java,C#。 到目前为止,大多数浏览器都不支持它。 必须将其转换为 ES5 才能在浏览器中执行。
>
> **ES5** –这些年来,我们一直在编写 Vanilla JavaScript。
> **ES5** – 这些年来,我们一直在编写朴素的JavaScript。
## 特兰大三角帆
......@@ -22,7 +22,7 @@ Transpiler 或**源到源编译器**是读取用一种编程语言编写的源
> **Transpiler 做什么?**
>
> ES6 代码= > ES5 代码(甚至还有 ES4,ES3)
> ES6 代码 => ES5 代码(甚至还有 ES4,ES3)
`tsconfig.json`文件中提供了 TypeScript 的 Transpiler 配置。
......@@ -52,7 +52,7 @@ Transpiler 或**源到源编译器**是读取用一种编程语言编写的源
## Transpiler 演示
让我们看看 ES6 ro ES5 转换的工作原理。 创建一个文件`helloworld.ts`并在其中写入此代码。
让我们看看 ES6 ES5 转换的工作原理。 创建一个文件`helloworld.ts`并在其中写入此代码。
#### ES6 代码
......
# JavaScript 中的真实和虚假
# JavaScript 中的真值和假值
> 原文: [https://howtodoinjava.com/typescript/truthy-and-falsy/](https://howtodoinjava.com/typescript/truthy-and-falsy/)
在 JavaScript 中,真值是表示布尔值为`true`的表达式,而 falsy 则等于布尔值`false`的表达式。 与其他语言不同,`true``false`值不限于`boolean`数据类型和比较。 它可以具有许多其他形式。
在 JavaScript 中,真值是等于布尔值`true`的表达式,而假值则是等于布尔值`false`的表达式。 与其他语言不同,`true``false`值不限于`boolean`数据类型和比较。 它可以具有许多其他形式。
让我们了解什么使 JavaScript 中的真假表达式成为事实。
## 虚假
## 假值
javascript 中共有**个共 6 个虚假值/表达式**。 我将使用此函数来检查值是真实的还是虚假的
javascript 中共有 **6 个假值/表达式**。 我将使用此函数来检查值是真值还是假值
```java
function testTruthyFalsy (val)
......@@ -18,24 +18,27 @@ function testTruthyFalsy (val)
```
| 虚假价值/表达 | 描述 |
| 布尔‘`false`’ | Obviously boolean `false` is `false`.
布尔‘`false`
显然布尔值`false``false`
```java
testTruthyFalsy (false); //Prints 'falsy'
```
|
| 空字符串,即`''` | Any empty string will be evaluated to `false`.
空字符串,即`''`
任何空字符串都将被求值为`false`
```java
testTruthyFalsy (''); //Prints 'falsy'
```
|
| `undefined` | Any `undefined` variable will be equal to `false`.
`undefined`
任何`undefined`变量将等于`false`
```java
var my_var = undefined;
......@@ -43,8 +46,9 @@ function testTruthyFalsy (val)
```
|
| `null` | Any `null` variable will be equal to `false`.
`null`
任何`null`变量将等于`false`
```java
var my_var = null;
......@@ -52,16 +56,18 @@ function testTruthyFalsy (val)
```
|
| `NaN` | Any numerical expression with result in `NaN` (not a number) will be equal to `false`.
`NaN`
结果为`NaN`(不是数字)的任何数值表达式都将等于`false`
```java
testTruthyFalsy (NaN); //Prints 'falsy'
```
|
| 数字零,即+0 或-0 | Any numerical expression with result in zero (`+0` or `-0`) will be equal to `false`.
数字零,即 +0 或 -0
任何结果为零(`+0``-0`)的数值表达式都将等于`false`
```java
testTruthyFalsy ( 2 - 2 ); //Prints 'falsy'
......@@ -69,11 +75,10 @@ function testTruthyFalsy (val)
```
|
## 特鲁西
## 真值
除了上面列出的虚假值以外的任何表达式或值**-被认为是真实的。 例如**
除了上面列出的假值以外的任何表达式或值 - 被认为是真值。 例如:
```java
function testTruthyFalsy (val)
......
# 等于运算符(==)与严格等于运算符(===
# 相等运算符(`==`)与严格相等运算符(`===`
> 原文: [https://howtodoinjava.com/typescript/equals-vs-strict-equals/](https://howtodoinjava.com/typescript/equals-vs-strict-equals/)
在 TypeScript(和 JavaScript)中,您可以与*相等运算符*`'=='`)或*严格相等运算符*`'==='`)比较。 两者似乎几乎相似; 但是他们比较两个值的方式却大不相同。
## 等于运算符(==
## 相等运算符(`==`
比较 `x == y`和 equals 运算符(其中 x 和 y 是值)会产生`true``false`。 要知道的重要一点是,在比较两个值时,JavaScript 运行时将执行类型转换以使两个值都具有相同的类型。
使用相等运算符比较 `x == y`(其中`x``y`是值)会产生`true``false`。 要知道的重要一点是,在比较两个值时,JavaScript 运行时将执行类型转换以使两个值都具有相同的类型。
例如,如果尝试将`string`值与`number`值进行比较,则`string`值将首先转换为`number`类型,然后进行比较。
......@@ -19,7 +19,7 @@ ToNumber("10") === 10
```
> 阅读更多:[完全等比较算法](https://ecma-international.org/ecma-262/5.1/#sec-11.9.3)
> 阅读更多:[完全等比较算法](https://ecma-international.org/ecma-262/5.1/#sec-11.9.3)
让我们看一个例子。
......@@ -33,14 +33,14 @@ a == '10' //true
查看上面示例中的最后两个语句。 变量`'a'`如何等于`number 10``string '10'`
## 严格等于运算符(===
## 严格相等运算符(`===`
比较 `x === y`和 equals 运算符,其中 x 和 y 是值,仅在以下情况下才产生`true``false`
使用相等运算符比较 `x === y`,其中`x``y`是值,仅在以下情况下才产生`true``false`
1. x 和 y 的类型相同
2. x 和 y 的值相等
1. `x``y`的类型相同
2. `x``y`的值相等
Let’s understand with an example.
让我们看一个例子。
```java
let a = 10;
......@@ -54,7 +54,7 @@ a === '10' //false
## 使用哪个运算符?
作为建议,建议**使用严格等于运算符,始终为**。 这很有帮助,因为
作为建议,建议**始终使用严格相等运算符**。 这很有帮助,因为
1. 您无需在检查相等性时记住类型转换规则。
2. 如预期的那样,比较不同的数据类型应为`false`
......
# 在 JavaScript 中未定义 vs 空
# JavaScript 中的`undefined` vs `null`
> 原文: [https://howtodoinjava.com/typescript/undefined-vs-null/](https://howtodoinjava.com/typescript/undefined-vs-null/)
如果变量已经声明但尚未初始化,则称其为**“ `undefined`”。 而**`null`”被分配给当时没有**值的变量。**
如果变量已经声明但尚未初始化,则称其为`undefined`”。 而“`null`”被分配给当时没有**值**的变量。
简单来说,当您不为变量赋值时,JavaScript 引擎会将其视为`undefined``null`值是由程序员分配的,以指示变量内部没有变量,但打算在以后的程序执行中使用该值。
## 未定义
## `undefined`
请参阅下面的 JavaScript 语句以了解`undefined`
......@@ -21,18 +21,18 @@ console.log( undeclaredVar ); //Uncaught ReferenceError: undeclaredVar is not de
```
如果看到一个值未定义的变量,则说明:
如果看到一个值`undefined`的变量,则说明:
1. 该变量已在程序中声明。
2. 变量没有赋值。
3. 如果检查变量`type`,它将是`undefined`。 请注意,这是 JavaScript 中的原始类型之一[字符串,数字,布尔值,null,未定义,符号(ES6 中的新增功能)]
3. 如果检查变量`type`,它将是`undefined`。 请注意,这是 JavaScript 中的原始类型之一:字符串,数字,布尔值,`null``undefined`,符号(ES6 中的新增功能)
4. 如果函数返回`undefined`,则未返回任何值。
> `undefined`在 JavaScript 中不是保留关键字。
## 空值
## `null`
`null`表示故意缺乏价值。 从概念上讲,它与 Java,C#等其他编程语言中的`null`非常相似。`null`表示缺少标识,表示变量指向没有对象。
`null`表示故意缺乏的值。 从概念上讲,它与 Java,C# 等其他编程语言中的`null`非常相似。`null`表示缺少标识,表示变量指向没有对象。
```java
var myVar = null; //Variable declared and assigned to null
......@@ -45,11 +45,11 @@ console.log( typeof(myVar) ); //object
请注意,`null`的类型为`object`,具有有效值,无属性,不可更改,并且系统中始终只存在相同的单个实例。
## 将等于运算符与 null 和 undefined 一起使用
## 将相等运算符与`null`和`undefined`一起使用
当您想清楚地区分`null``undefined`变量时,请始终记住使用严格相等运算符(`===`)将变量与`null``undefined`进行比较。
> 了解更多:JavaScript 中的 [== vs ===](https://howtodoinjava.com/typescript/equals-vs-strict-equals/)
> 了解更多:JavaScript 中的[`==` vs `===`](https://howtodoinjava.com/typescript/equals-vs-strict-equals/)
```java
var myUndefinedVar; //undefined
......@@ -61,12 +61,12 @@ myUndefinedVar === myNullVar; //false - correct behavior
```
## null 等于零
## `null`等于零
`null``undefined`之间的主要区别在于将它们转换为原始类型的方式。
* `null`在执行基本操作时会转换为零(0)。
* `undefined`转换为 NaN
* `undefined`转换为`NaN`
```java
var myUndefinedVar; //undefined
......
......@@ -29,7 +29,7 @@ Angular 会自动从组件中提取`propertyName`和`object.propertyName`的值
## 3\. 角插值用法
1. **显示简单属性** –插值可用于显示和评估 HTML 元素标签之间以及属性分配内的文本字符串。
1. **显示简单属性** –插值可用于显示和求值 HTML 元素标签之间以及属性分配内的文本字符串。
```java
<h1>Greetings {{ name }}! </h1>
......@@ -38,7 +38,7 @@ Angular 会自动从组件中提取`propertyName`和`object.propertyName`的值
```
2. **评估算术表达式** –插值的另一种用法是评估花括号内的算术表达式。
2. **求值算术表达式** –插值的另一种用法是求值花括号内的算术表达式。
```java
<h6>{{3 + 5}}</h6> //outputs 8 on HTML browser
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册