Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/basic/grammar.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ JavaScript 提供`if`结构和`switch`结构,完成条件判断,即只有满

### if 结构

`if`结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,`true`表示真,`false`表示`伪`。
`if`结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,`true`表示`真`,`false`表示`伪`。

```javascript
if (布尔值)
Expand Down
4 changes: 2 additions & 2 deletions docs/types/function.md
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ function(){ /* code */ }();
// SyntaxError: Unexpected token (
```

产生这个错误的原因是,`function`这个关键字即可以当作语句,也可以当作表达式。
产生这个错误的原因是,`function`这个关键字既可以当作语句,也可以当作表达式。

```javascript
// 语句
Expand Down Expand Up @@ -948,7 +948,7 @@ a // 2

上面代码中,严格模式下,`eval`内部还是改写了外部变量,可见安全风险依然存在。

总之,`eval`的本质是在当前作用域之中,注入代码。由于安全风险和不利于 JavaScript 引擎优化执行速度,所以一般不推荐使用。通常情况下,`eval`最常见的场合是解析 JSON 数据的字符串,不过正确的做法应该是使用原生的`JSON.parse`方法。
总之,`eval`的本质是在当前作用域之中,注入代码。由于安全风险和不利于 JavaScript 引擎优化执行速度,一般不推荐使用。通常情况下,`eval`最常见的场合是解析 JSON 数据的字符串,不过正确的做法应该是使用原生的`JSON.parse`方法。

### eval 的别名调用

Expand Down