JavaScript 表达式、运算符与语句详解
1. 严格模式下的 eval() 函数
在 JavaScript 里,真正需要对代码字符串进行求值的情况并不常见。要是确实有这个需求,通常会进行全局求值而非局部求值。在严格模式下, eval()
函数的行为和标识符 “eval” 的使用都受到了更多限制。当从严格模式的代码里调用 eval()
,或者要求值的代码字符串以 “use strict” 指令开头时, eval()
会在一个私有变量环境中进行局部求值。这意味着在严格模式下,被求值的代码能够查询和设置局部变量,但无法在局部作用域里定义新的变量或函数。
此外,严格模式让 “eval” 实际上成为了保留字,使得 eval()
更像一个运算符。不允许用新值覆盖 eval()
函数,也不能声明名为 “eval” 的变量、函数、函数参数或 catch 块参数。
2. 其他杂项运算符
JavaScript 支持多种杂项运算符,下面为大家详细介绍。
2.1 条件运算符(?:)
条件运算符是 JavaScript 里唯一的三元运算符(有三个操作数),有时也被称作三元运算符。它的写法有时是 ?:
,不过在代码里并非完全是这样呈现。该运算符有三个操作数,第一个操作数放在 ?
前面,第二个放在 ?
和 :
之间,第三个放在 :
后面。示例