开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情
==
JavaScript 有两组相等运算符:===
和 !==
,以及它们邪恶😈的孪生兄弟 ==
和 !=
。
==
和 !=
只有在运算数类型一致时才会做出正确的判断,如果两个运算数是不同的类型,它们试图去强制转换值的类型。
- 建议永远不要使用== 和 !=;相反,请始终使用 === 和 !==。
with
with
语句本意是想用它来快捷地访问对象的属性。不幸的是,它的结果可能有时不可预料,所以应该避免使用它。
eval
eval 函数传递一个字符串给 JavaScript 编译器,并且执行其结果。
eval("myValue = myObject." + myKey + ";");
Function
构造器是 eval
的另一种形式,同样也应该避免使用它。
continue 语句
continue
语句跳到循环的顶部。一段代码通过重构移除 continue
语句之后,性能会得到改善。
swtich 穿越
缺少块的语句
If、while、do 或 for 语句
可以接受一个括在花括号中的代码块,也可以接受单行语句。
++ --
递增和递减运算符使得程序员可以用非常简洁的风格去编码。
位运算符
值 | 属性 |
---|---|
& | and 按位与 |
| | or 按位或 |
^ | xor 按位异或 |
~ | not 按位非 |
>> | 带符号的右位移 |
>>> | 无符号的(用0补足的)右位移 |
<< | 左位移 |
function 语句对比 function 表达式
JavaScript 既有 function 语句
,同时也有 function 表达式
。
一个 function 语句
就是其值为一个函数的 var
语句的速记形式。
一个语句不能以一个函数表达式开头,因为官方的语法假定以单词function
开头的语句是一个 function 语句
。
类型的包装对象
JavaScript 有一套类型的包装对象。例如:
new Boolead(false)
会返回一个对象,该对象有一个 valueOf
方法会返回被包装的值。这其实完全没有必要,并且有时还令人困惑。不要使用 new Boolean, new Number 或 new String
。
此外也请避免使用 new Object 和 new Array。可使用 { } 和 [ ] 来代替。
new
JavaScript 的 new 运算符
创建一个继承于其运算数的原型的新对象,然后调用该运算数,把新创建的对象绑定给 this
。
void
void 是一种类型,表示没有值。
void 是一个运算符,它接受一个运算数并返回 undefined。