JS中的函數(shù)
函數(shù)是一段在一起的、可以做某一件事的程序。也叫做子程序、(OOP中)方法創(chuàng)建函數(shù)函數(shù)是實現(xiàn)某一個功能的方法
function [函數(shù)名]([形參]){} //=>[函數(shù)體] //實現(xiàn)功能的具體JS代碼執(zhí)行函數(shù)
函數(shù)名();//=>把創(chuàng)建的函數(shù)執(zhí)行,而且這個函數(shù)可以執(zhí)行很多次
在真實項目中,我們一般都會把實現(xiàn)一個具體功能的代碼封裝在函數(shù)中:JS中函數(shù)的核心原理1、如果當(dāng)前這個功能需要在頁面中執(zhí)行多次,不封裝成為函數(shù),每一次想實現(xiàn)這個功能,都需要重新把代碼寫一遍,浪費時間,而封裝在一個函數(shù)中,以后想實現(xiàn)多次這個功能,我們就沒有必要在重新寫代碼了,只需要把函數(shù)重新的執(zhí)行即可,提高了開發(fā)效率
2、封裝在一個函數(shù)中,頁面中就基本上很難出現(xiàn)重復(fù)一樣的代碼了,減少了頁面中代碼的冗余度,提高了代碼的重復(fù)利用率低耦合高內(nèi)聚
我們把以上的特點稱為 函數(shù)封裝(OOP面向?qū)ο缶幊趟枷耄枰覀冋莆盏木褪穷惖睦^承、封裝、多態(tài))
函數(shù)作為js中引用數(shù)據(jù)類型的一種,也是按照引用地址來操作的
function sum(){ var total=1+1; total*=20; console.log(total.toFixed(2)); } sum();
創(chuàng)建函數(shù)
首先會在當(dāng)前作用域中聲明一個函數(shù)名(聲明的函數(shù)名和使用var聲明的變量名是一樣的操作: var sum;function sum;這兩個名字算重復(fù)了)
瀏覽器首先會開辟一個新的內(nèi)存空間(分配一個16進(jìn)制地址),把函數(shù)體中的寫好的代碼當(dāng)做普通的字符串存儲在這個內(nèi)存空間中(創(chuàng)建一個函數(shù)如果不執(zhí)行,函數(shù)沒有意義)
把內(nèi)存空間的地址賦值給之前聲明的那個函數(shù)
函數(shù)執(zhí)行
目的:把之前存儲的實現(xiàn)具體功能的JS代碼執(zhí)行
函數(shù)執(zhí)行,瀏覽器首先會為其開辟一個新的私有作用域(只能執(zhí)行函數(shù)中之前編寫的JS代碼)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95865.html
摘要:作用域鏈用于表明上下文的執(zhí)行順序。當(dāng)前上下文執(zhí)行完畢則出棧,執(zhí)行下一個上下文。 從一個簡單的例子出發(fā) 先從一個簡單的例子出發(fā)(先不涉及異步),看看自己是否大致了解瀏覽器的執(zhí)行機(jī)制: console.log(a); var a=1; function foo(a){ console.log(a); var a=2; console.log(a); } foo(a)...
摘要:事件循環(huán)當(dāng)主線程中的任務(wù)執(zhí)行完畢后,會從任務(wù)隊列中獲取任務(wù)一個個的放在棧中執(zhí)行去執(zhí)行,這個過程是循環(huán)不斷的,所以整個的這種運行機(jī)制又稱為事件循環(huán)。 寫在前面 說起javascript(以下簡稱js)這門語言,相信大家已經(jīng)非常熟悉了,不管是前端開發(fā)還是后端開發(fā)幾乎無時無刻都要跟它打交道。雖說開發(fā)者每天幾乎都要操作js,但是你真的確定你掌握了js的運行機(jī)制嗎!下面我們就來聊聊這話題。 Ja...
摘要:測試調(diào)用斷言的執(zhí)行后返回斷言被調(diào)用斷言被調(diào)用了一次斷言傳入的參數(shù)為所創(chuàng)建的函數(shù)還可以設(shè)置返回值,定義內(nèi)部實現(xiàn)或返回對象。 在本篇教程中,我們會介紹 Jest 中的三個與 Mock 函數(shù)相關(guān)的API,分別是jest.fn()、jest.spyOn()、jest.mock()。使用它們創(chuàng)建Mock函數(shù)能夠幫助我們更好的測試項目中一些邏輯較復(fù)雜的代碼,例如測試函數(shù)的嵌套調(diào)用,回調(diào)函數(shù)的調(diào)用等...
摘要:執(zhí)行上下文作用域鏈和內(nèi)部機(jī)制一執(zhí)行上下文執(zhí)行上下文是代碼的執(zhí)行環(huán)境,它包括的值變量對象和函數(shù)。創(chuàng)建作用域鏈一旦可變對象創(chuàng)建完,引擎就開始初始化作用域鏈。 執(zhí)行上下文、作用域鏈和JS內(nèi)部機(jī)制(Execution context, Scope chain and JavaScript internals) 一、執(zhí)行上下文 執(zhí)行上下文(Execution context EC)是js代碼的執(zhí)...
閱讀 3713·2021-10-12 10:11
閱讀 1980·2019-08-30 15:53
閱讀 1589·2019-08-30 13:15
閱讀 2303·2019-08-30 11:25
閱讀 1798·2019-08-29 11:24
閱讀 1648·2019-08-26 13:53
閱讀 3522·2019-08-26 13:22
閱讀 1747·2019-08-26 10:24