JS 1 解析與執行

2021-08-03 14:29:43 字數 1459 閱讀 8962

js執行會分為2段,第一段是預處理階段,在window中,第二階段是執行階段,賦值

一、js全域性預處理階段,會載入:

1、用宣告的方式建立函式

2、用var定義的變數

舉例:f();

g();

var g = function(){} //函式表示式  報錯

function f(){} //宣告的方式

console.log(a);

console.log(b);

var a =5;

b=6; //報錯

二、js全域性預處理階段策略

1、處理函式宣告有衝突,會覆蓋

2、處理變數宣告有衝突,會忽略

舉例:alert(f);

function f(){

console.log(『111』)

var f = 5; //忽略

function f(){ //覆蓋

cosole.log('222');

三、js全域性執行階段

alert(a); //undefined

//alert(b); //報錯

alert(f); //function f()...

alert(g);//undefined

var a = 5;

b =6;

alert(b);

function f(){

console.log('f')

var g = function(){

console.log('g');

alert(g);

預處理階段

window{

f:指向函式

a:undefined 

g:undefined

執行階段

window{

f:指向函式

a:5b:6

g:指向函式

四、函式預處理階段

預處理階段:a.每呼叫一次,產生乙個lexicalenvironment 

b.先函式的引數

c.內部宣告式函式

d.內部var變數

e.衝突情況與全域性處理一樣

舉例function f(a,b){

alert(a)

alert(b);

var b = 100l

function a(){

f(1, 2);

//載入

lexical env{

a:1b:2 //如果只傳了乙個引數 則b為undefind

arguments:

//處理函式內部

lexical env{

a:1 //覆蓋 指向函式的引用

b:2 //忽略

arguments:

執行階段:

a.給預處理階段的成員賦值

b.如果沒有用var宣告的變數,會成為最外部lexicalenvironment的成員

前端基礎 js1

break 直接跳出當前迴圈或者乙個switch語句。如果你的迴圈是巢狀的,需要逐步使用break跳出。for var b 1 b 20 b document.writeln b 輸出1 11 以上 在b 12的時候就結束循壞。continue 終止當前的一次迴圈過程,不跳出迴圈,繼續往下判斷循壞條...

js 1 設計模式

一 工廠模式 使用場景 1.jquery中只有乙個 2.react 中的reactelement 方法 class jquery css window.function selector body css 二 單例模式 單例模式 只能例項化乙個物件,例子中是在getinstance中例項化,其他地方...

製作水果忍者 JS 1

他是c 我寫的js 記錄一下我寫的過程方便回憶 先是製作背景,然後學到了乙個製作ugui很重要的九宮格,這個很方便去製作背景的大小。利用這個圓形透明背景製作出這兩種大小不一樣背景 文字是自己新增的 然後製作read go 的開始提示。pragma strict import unityengine....