javascript
javascript注意点(1)
1.void運算符
ECMAScript 262規范,關于void說明如下:
The?void?Operator
The production?UnaryExpression?: void?UnaryExpression?is evaluated as follows:
- Let?expr?be the result of evaluating?UnaryExpression.
- Call GetValue(expr).
- Return undefined.
NOTE: GetValue must be called even though its value is not used because it may have observable side-effects.
也就是說會執行void后面的表達式,不論表達式的返回值是啥都會返回undefined。
說明:undefined在JavaScript中并不屬于保留字/關鍵字,因此在IE5.5~8中我們可以將其當作變量那樣對其賦值,在新版的瀏覽器中給undefined賦值時無效的,所以保險起見使用void 0來替代undefined
2.值傳遞和引用傳遞
js基本類型按值傳遞,obj為引用傳遞。但是這個引用傳遞和普通引用傳遞有區別,只能修改對象中的屬性,而不能修改整個對象。
var obj = {x : 1}; function foo(o) {o = 100; } foo(obj); console.log(obj.x); // 仍然是1, obj并未被修改為100.3.js的變量提升。
在js的預編譯階段會將var聲明的變量和function提到function最開始。
ES6中使用let和class聲明的變量和類不存在變量提升的現象
?
以后想到再加。
?
轉載于:https://www.cnblogs.com/wangwei1314/p/5558727.html
總結
以上是生活随笔為你收集整理的javascript注意点(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6.3站立会议1
- 下一篇: SpringMVC学习系列(8) 之 国