mirror of
https://github.com/apachecn/eloquent-js-3e-zh.git
synced 2025-05-23 11:52:20 +00:00
1
This commit is contained in:
parent
deb946d9c1
commit
0f0a0bca26
46
1.md
46
1.md
@ -43,7 +43,7 @@
|
||||
|
||||
数字(`Number`)类型的值即数字值。在 JavaScript 中写成如下形式:
|
||||
|
||||
```
|
||||
```js
|
||||
13
|
||||
```
|
||||
|
||||
@ -57,13 +57,13 @@ JavaScript使用固定数量的位(64 位)来存储单个数字值。 你可
|
||||
|
||||
使用小数点来表示分数。
|
||||
|
||||
```
|
||||
```js
|
||||
9.81
|
||||
```
|
||||
|
||||
对于非常大或非常小的数字,你也可以通过输入`e`(表示指数),后面跟着指数来使用科学记数法:
|
||||
|
||||
```
|
||||
```js
|
||||
2.998e8
|
||||
```
|
||||
|
||||
@ -75,7 +75,7 @@ JavaScript使用固定数量的位(64 位)来存储单个数字值。 你可
|
||||
|
||||
与数字密切相关的就是算术。比如,加法或者乘法之类的算术运算会使用两个数值,并产生一个新的数字。JavaScript 中的算术运算如下所示:
|
||||
|
||||
```
|
||||
```js
|
||||
100 + 4 * 11
|
||||
```
|
||||
|
||||
@ -83,7 +83,7 @@ JavaScript使用固定数量的位(64 位)来存储单个数字值。 你可
|
||||
|
||||
但是这个例子的意思是“将 4 和 100 相加,并将结果乘 11”,还是是在加法之前计算乘法? 正如你可能猜到的那样,乘法首先计算。 但是和数学一样,你可以通过将加法包在圆括号中来改变它:
|
||||
|
||||
```
|
||||
```js
|
||||
(100 + 4) * 11
|
||||
```
|
||||
|
||||
@ -107,7 +107,7 @@ JavaScript使用固定数量的位(64 位)来存储单个数字值。 你可
|
||||
|
||||
下一个基本数据类型是字符串(`String`)。 字符串用于表示文本。 它们是用引号括起来的:
|
||||
|
||||
```
|
||||
```js
|
||||
`Down on the sea`
|
||||
"Lie on the ocean"
|
||||
'Float on the ocean'
|
||||
@ -119,7 +119,7 @@ JavaScript使用固定数量的位(64 位)来存储单个数字值。 你可
|
||||
|
||||
若要将这些字符存入字符串,需要使用下列规则:当反斜杠(`\`)出现在引号之间的文本中时,表示紧跟在其后的字符具有特殊含义,我们将其称之为转义符。当引号紧跟在反斜杠后时,并不意味着字符串结束,而表示这个引号是字符串的一部分。当字符`n`出现在反斜杠后时,JavaScript 将其解释成换行符。以此类推,`\t`表示制表符,我们来看看下面这个字符串:
|
||||
|
||||
```
|
||||
```js
|
||||
"This is the first line\nAnd this is the second"
|
||||
```
|
||||
|
||||
@ -132,7 +132,7 @@ And this is the second
|
||||
|
||||
当然,在某些情况下,你希望字符串中的反斜杠只是反斜杠,而不是特殊代码。 如果两个反斜杠写在一起,它们将合并,并且只有一个将留在结果字符串值中。 这就是字符串“`A newline character is written like "\n".`”的表示方式:
|
||||
|
||||
```
|
||||
```js
|
||||
"A newline character is written like \"\\n\"."
|
||||
```
|
||||
|
||||
@ -142,7 +142,7 @@ And this is the second
|
||||
|
||||
我们不能将除法,乘法或减法运算符用于字符串,但是`+`运算符却可以。这种情况下,运算符并不表示加法,而是连接操作:将两个字符串连接到一起。以下语句可以产生字符串`"concatenate"`:
|
||||
|
||||
```
|
||||
```js
|
||||
"con" + "cat" + "e" + "nate"
|
||||
```
|
||||
|
||||
@ -150,7 +150,7 @@ And this is the second
|
||||
|
||||
用单引号或双引号编写的字符串的行为非常相似 - 唯一的区别是需要在其中转义哪种类型的引号。 反引号字符串,通常称为模板字面值,可以实现更多的技巧。 除了能够跨越行之外,它们还可以嵌入其他值。
|
||||
|
||||
```
|
||||
```js
|
||||
`half of 100 is ${100 / 2}`
|
||||
```
|
||||
|
||||
@ -160,7 +160,7 @@ And this is the second
|
||||
|
||||
并非所有的运算符都是用符号来表示,还有一些运算符是用单词表示的。比如`typeof`运算符,会产生一个字符串的值,内容是给定值的具体类型。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(typeof 4.5)
|
||||
// → number
|
||||
console.log(typeof "x")
|
||||
@ -171,7 +171,7 @@ console.log(typeof "x")
|
||||
|
||||
我们所见过的绝大多数运算符都使用两个值进行操作,而`typeof`仅接受一个值进行操作。使用两个值的运算符称为二元运算符,而使用一个值的则称为一元运算符。减号运算符既可用作一元运算符,也可用作二元运算符。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(- (10 - 2))
|
||||
// → -8
|
||||
```
|
||||
@ -184,7 +184,7 @@ console.log(- (10 - 2))
|
||||
|
||||
一种产生布尔值的方法如下所示:
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(3 > 2)
|
||||
// → true
|
||||
console.log(3 < 2)
|
||||
@ -195,7 +195,7 @@ console.log(3 < 2)
|
||||
|
||||
我们可以使用相同的方法比较字符串。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log("Aardvark" < "Zoroaster")
|
||||
// → true
|
||||
```
|
||||
@ -204,14 +204,14 @@ console.log("Aardvark" < "Zoroaster")
|
||||
|
||||
其他类似的运算符则包括`>=`(大于等于),`<=`(小于等于),`==`(等于)和`!=`(不等于)。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log("Apple" == "Orange")
|
||||
// → false
|
||||
```
|
||||
|
||||
在 JavaScript 中,只有一个值不等于其自身,那就是`NaN`(Not a Number,非数值)。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(NaN == NaN)
|
||||
// → false
|
||||
```
|
||||
@ -224,7 +224,7 @@ console.log(NaN == NaN)
|
||||
|
||||
`&&`运算符表示逻辑与,该运算符是二元运算符,只有当赋给它的两个值均为`true`时其结果才是真。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(true && false)
|
||||
// → false
|
||||
console.log(true && true)
|
||||
@ -233,7 +233,7 @@ console.log(true && true)
|
||||
|
||||
`||`运算符表示逻辑或。当两个值中任意一个为`true`时,结果就为真。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(false || true)
|
||||
// → true
|
||||
console.log(false || false)
|
||||
@ -244,13 +244,13 @@ console.log(false || false)
|
||||
|
||||
在混合使用布尔运算符和其他运算符的情况下,总是很难确定什么时候需要使用括号。实际上,只要熟悉了目前为止我们介绍的运算符,这个问题就不难解决了。`||`优先级最低,其次是`&&`,接着是比较运算符(`>`,`==`等),最后是其他运算符。基于这些优先级顺序,我们在一般情况下最好还是尽量少用括号,比如说:
|
||||
|
||||
```
|
||||
```js
|
||||
1 + 1 == 2 && 10 * 10 > 50
|
||||
```
|
||||
|
||||
现在我们来讨论最后一个逻辑运算符,它既不属于一元运算符,也不属于二元运算符,而是三元运算符(同时操作三个值)。该运算符由一个问号和冒号组成,如下所示。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(true ? 1 : 2);
|
||||
// → 1
|
||||
console.log(false ? 1 : 2);
|
||||
@ -271,7 +271,7 @@ console.log(false ? 1 : 2);
|
||||
|
||||
在引言中,我提到 JavaScript 会尽可能接受几乎所有你给他的程序,甚至是那些做些奇怪事情的程序。 以下表达式很好地证明了这一点:
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(8 * null)
|
||||
// → 0
|
||||
console.log("5" - 1)
|
||||
@ -290,7 +290,7 @@ console.log(false == 0)
|
||||
|
||||
当相同类型的值之间使用`==`符号进行比较时,其运算结果很好预测:除了`NaN`这种情况,只要两个值相同,则返回`true`。但如果类型不同,JavaScript 则会使用一套复杂难懂的规则来确定输出结果。在绝大多数情况下,JavaScript 只是将其中一个值转换成另一个值的类型。但如果运算符两侧存在`null`或`undefined`,那么只有两侧均为`null`或`undefined`时结果才为`true`。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(null == undefined);
|
||||
// → true
|
||||
console.log(null == 0);
|
||||
@ -309,7 +309,7 @@ console.log(null == 0);
|
||||
|
||||
例如,当左侧值可以转换为`true`时,`||`运算符会返回它,否则返回右侧值。 当值为布尔值时,这具有预期的效果,并且对其他类型的值做类似的操作。
|
||||
|
||||
```
|
||||
```js
|
||||
console.log(null || "user")
|
||||
// → user
|
||||
console.log("Agnes" || "user")
|
||||
|
Loading…
x
Reference in New Issue
Block a user