預解釋機制

2021-10-04 21:59:14 字數 2558 閱讀 5374

in:

in:"num"in window,

判斷num是否為window這個物件的乙個屬性,是的話返回true,不是的話返回false

var obj=

;console.

log(

"name"

in obj)

;>>

true

console.

log(

"eat"

in obj)

;>>

false

1、預解釋的時候,不管條件是否成立,都要把帶var的進行提前的宣告

window的預解釋:var num;

–>window.num;

案例一if(

!("num"

in window)

)console.

log(num)

;>>undefibed

2、預解釋的時候只預解釋「=」左邊的,右邊的是值,不參與預解釋
普通表示式:

宣告+定義,一般不會報錯

案例二fn(

);>>

"ok"

functionfn(

)fn()

;>>

"ok"

匿名函式之函式表示式:

把函式的定義部分當作乙個值賦值給我們的變數元素的某一事件

window下的預解釋:var fn;

fn()

;>>

undefibed()

>>報錯》typeerror:fn is not a function

varfn()

=function()

;>>一般做專案推薦匿名函式表示式,因為**只能放在var的下面,比較容易找錯

3、自執行函式:

定義和執行一起完成了

自執行函式定義的那個function在全域性作用域下不進行預解釋,當**執行到這個位置的時候定義和執行就完成了

自執行函式的資料型別:

a.function

(num)

(100);

>>報錯b.(

function

(num)(

100));

c.~function

(num)

(100);

d.+function

(num)

(100);

e.-function

(num)

(100);

f.!function

(num)

(100

);

4、函式體中,return後面的**雖然不執行了,但是需要進行預解釋,return後面跟著的是外面要返回的值,所以不進行預解釋
一般情況下return 後面的**不會執行

案例三

functionfn(

);var num =

100;}fn

();

5、如果在預解釋的時候,如果名字已經宣告過了,不需要重新的宣告,但是需要重新的賦值
在js中,如果變數的名字和函式的名字重複了,也算衝突

案例四

預解釋:

var fn;window.fn;

fn=***fff000;window.fn=***fff000

var fn=13;

functionfn(

)

案例四拓展

window 預解釋:

functionfn(

);>>>宣告+定義 fn=***fff111

var fn=10;

>>>宣告 var fn(不需要重新宣告)

functionfn(

);>>>宣告(不重複進行)+定義 fn=***fff222

>>>綜上可得:fn=***fff222fn(

);>>

2functionfn(

);fn(

);>>

2var fn=10;

>>fn=

10fn()

;>>10(

)>>報錯:>>error:fn is not a function

,>>後面不進行

functionfn(

);fn(

);

曾經那樣熱烈地計畫過的遠景

那樣細緻精密的描好了的藍圖

曾經那樣渴盼著它出現的青春

_卻始終 始終沒有來臨

青春並非人生的一段時光

而是一種心態

青春不是粉頰紅唇和體魄健壯

而是一種意志的力量

_富於想象的特質和情感的活力

_end

預解析機制

js在預解析階段先找所有宣告,如果是var 先給var後的變數定乙個undefind 如果是function 就把function當做字元創賦給函式名 如果名字形同的情況function會把覆蓋var 後面function會覆蓋前面function 1.定義 預解析 在當前作用域下,js執行之前,會...

JS 之 預解釋

1 js中的記憶體空間分為兩種 棧記憶體 堆記憶體 棧記憶體 提供js 執行的環境 儲存基本資料型別的值 全域性作用域或私有作用域都是棧記憶體。堆記憶體 儲存引用資料型別的值 物件是把屬性名和屬性值儲存進去 函式是把函式體中的 當做字串儲存進去。2 當瀏覽器載入html頁面的時候,首先會提供乙個供j...

1 3 預解釋是一種毫無節操的機制

預解釋是毫無節操的一種機制,自從學了預解釋,從此節操是路人 1.預解釋的時候,不管你的條件是否成立,都要把帶var的進行提前的宣告 window的預解釋 var num window.num num in window 判斷num是否為window這個物件的乙個屬性,是的話,返回true,不是的話返...