[js]js中4種無節操的預解釋情況
阿新 • • 發佈:2018-02-05
scrip 是否 if語句 orange 表達 一個 報錯 body fun
js中4種無節操的預解釋情況
- 1. if語句即使條件不成立,條件裏的表達式也會進行預解釋.
- 2. 匿名函數的預解釋: 只對等號左邊與解釋
- 3. 自執行函數的預解釋: 不進行預就解釋, 執行的時候,定義+執行
- 4. return下面的語句也會進行預解釋,但是return後面的語句不進行預解釋
<script> var p1 = {name: "maotai"}; console.log(age); //1.即使條件不成立,條件裏的表達式也會進行預解釋. if ("age" in p1) { // 是否是對象的一個屬性 var age = 22; console.log("name in p1") } console.log("--------------------------------"); // 2.匿名函數的預解釋: 只對等號左邊與解釋 fn(); function fn() { console.log("fn is running!"); } fn(); console.log("--------------------------------"); // 等號右邊的不會進行預解釋. // fn2(); //報錯 var fn2 = function () { var favor = "orange"; console.log("fn2 is running!") }; fn2(); // 3. 自執行函數的預解釋: 不進行預就解釋, 執行的時候,定義+執行 ~function (num) { console.log("I am zi zhi xing fun " + num); }(100); // 4, return下面的語句也會進行預解釋,但是return後面的語句不進行預解釋 console.log("--------------------------------"); function fn3() { console.log(num3); return function () { }; // 這個function不會進行與解釋 var num3 = 330; // 這裏會進行預解釋 } fn3(); </script>
[js]js中4種無節操的預解釋情況