華為Web前端全棧成長計畫第二階段筆記 JS函式

2021-10-08 18:45:05 字數 2794 閱讀 1818

課程連線:【web前端全棧成長計畫-二階段正式開啟】0基礎前端開發者養成記,課程免費參與有獎!

課程質量還是不錯的,理論與實踐結合,沿著html/css-》js、ajax-》node.js、vue的路線學習,有考核還有專門的學習社群,安利一下~

2 js的作用域和作用域鏈

3 js的預解析

簡單資料型別按照值傳遞

function

testargs

(argu)

argu =1;

console.

log(

testargs

(argu));

// 2

console.

log(argu)

;// 1

複雜資料型別按照位址傳遞

function

person

(name)

function

f1(x)

var p =

newperson

("blate");

console.

log(p.name)

;// "blate"

f1(p)

;// p將其儲存的位址傳給了形參x

console.

log(p.name)

;// "mike"

function

getsum

(num1, num2)

getsum(1

);// 1 + undefined -> nan

arguments是每個函式內建的乙個物件,裡面按照偽陣列的形式儲存了所有傳遞過來的實參

利用函式關鍵字自定義函式(命名函式)

函式表示式宣告(匿名函式)

var

fun=

function

(name)

;fun

("ygj");

// 呼叫函式

**名字(變數)起作用和效果的範圍,目的是為了提高程式的可靠性,更重要的是減少命名衝突

es6之前:全域性作用域和區域性作用域

es6中新增了塊級作用域,即{}作用域,如if(){}, for(){}

2.3 作用域鏈

概念:內部函式訪問外部函式的變數,採取的是鏈式查詢的方式來決定取哪個值,這種結構稱為作用域鏈,即就近原則分析方法:站在目標出發,一層一層往外找(必要時可畫圖輔助分析)

functionf1(

)f2()

;}var num =

456;f1(

);// 輸出結果是0

預解析 :js引擎會把js裡面所有的var和function提公升到當前作用域的最前面(變數放在更前面)

**執行:按照**書寫的順序從上往下執行

變數提公升:把所有變數宣告提公升到當前作用域最前面(不提公升賦值操作)

e.g.1

直接執行console.log(num)會報錯,但執行下面的**則會報undefined

console.

log(num)

;var num =

10;

原因就是js引擎按照變數預解析把上面**轉換成了下面的實際**

var num;

console.

log(num)

;num =

10;

e.g.2

執行

var

fun=

function()

;fun()

;

正常,但執行

fun()

;var

fun=

function()

;

則會報錯函式未定義,原因也是預解析的問題。

js引擎按照變數預解析把上面**轉換成了下面的實際**:

var fun;

fun();

fun=

function()

;

函式提公升:把關鍵字宣告的函式宣告提公升到當前作用域最前面(不呼叫函式)

e.g.3

如下**可以正常執行就是js引擎執行了函式提公升

fun()

;function

fun(

);

案例1

var num =10;

functionfn(

)fn()

;

var num;

functionfn(

)num =10;

fn();

案例2

f1()

;console.

log(c)

;console.

log(b)

;console.

log(a)

;functionf1(

)

functionf1(

)f1()

;console.

log(c)

;console.

log(b)

;console.

log(a)

;// 報錯

web前端全棧0基礎到精通(祺)10

多欄布局解決方案 document center left right 優化 品質 使用精靈圖 測試檢查 1 做完的頁面要與設計稿進行比對,保證對設計稿 95 以上的還原度。1 頁面模組的完整性,保證頁面不出現模組丟失 尤其是懸浮的側邊欄 彈窗 下拉列表等 2 字型 字型大小 文字顏色的一致性 3 ...

web前端全棧0基礎到精通(祺)12

css3簡介 css3新增選擇器 以box結尾 包含box 結構性偽類選擇器 last child 選擇器 用於選取屬於其父元素的最後乙個子元素的指定選擇器 nth child n 選擇器 匹配屬於其父元素的第n個子元素,n可以是數字 關鍵字或公式 nth last child 選擇器 匹配屬於其元...

web前端全棧0基礎到精通(祺)13

css3過渡屬性 transition duration 規定完成過渡效果需要多少秒或毫秒。transition timing function規定速度效果的速度曲線。transition delay 定義過渡效果從何時開始。transition屬性簡寫 css3的 transform 屬性 瀏覽器...