JS中的函數(shù)
函數(shù)是一段在一起的、可以做某一件事的程序。也叫做子程序、(OOP中)方法創(chuàng)建函數(shù)函數(shù)是實(shí)現(xiàn)某一個(gè)功能的方法
function [函數(shù)名]([形參]){} //=>[函數(shù)體] //實(shí)現(xiàn)功能的具體JS代碼執(zhí)行函數(shù)
函數(shù)名();//=>把創(chuàng)建的函數(shù)執(zhí)行,而且這個(gè)函數(shù)可以執(zhí)行很多次
在真實(shí)項(xiàng)目中,我們一般都會(huì)把實(shí)現(xiàn)一個(gè)具體功能的代碼封裝在函數(shù)中:JS中函數(shù)的核心原理1、如果當(dāng)前這個(gè)功能需要在頁面中執(zhí)行多次,不封裝成為函數(shù),每一次想實(shí)現(xiàn)這個(gè)功能,都需要重新把代碼寫一遍,浪費(fèi)時(shí)間,而封裝在一個(gè)函數(shù)中,以后想實(shí)現(xiàn)多次這個(gè)功能,我們就沒有必要在重新寫代碼了,只需要把函數(shù)重新的執(zhí)行即可,提高了開發(fā)效率
2、封裝在一個(gè)函數(shù)中,頁面中就基本上很難出現(xiàn)重復(fù)一樣的代碼了,減少了頁面中代碼的冗余度,提高了代碼的重復(fù)利用率低耦合高內(nèi)聚
我們把以上的特點(diǎn)稱為 函數(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ù)
首先會(huì)在當(dāng)前作用域中聲明一個(gè)函數(shù)名(聲明的函數(shù)名和使用var聲明的變量名是一樣的操作: var sum;function sum;這兩個(gè)名字算重復(fù)了)
瀏覽器首先會(huì)開辟一個(gè)新的內(nèi)存空間(分配一個(gè)16進(jìn)制地址),把函數(shù)體中的寫好的代碼當(dāng)做普通的字符串存儲(chǔ)在這個(gè)內(nèi)存空間中(創(chuàng)建一個(gè)函數(shù)如果不執(zhí)行,函數(shù)沒有意義)
把內(nèi)存空間的地址賦值給之前聲明的那個(gè)函數(shù)
函數(shù)執(zhí)行
目的:把之前存儲(chǔ)的實(shí)現(xiàn)具體功能的JS代碼執(zhí)行
函數(shù)執(zhí)行,瀏覽器首先會(huì)為其開辟一個(gè)新的私有作用域(只能執(zhí)行函數(shù)中之前編寫的JS代碼)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95865.html
摘要:解析首先簡稱是由歐洲計(jì)算機(jī)制造商協(xié)會(huì)制定的標(biāo)準(zhǔn)化腳本程序設(shè)計(jì)語言。級(jí)在年月份成為的提議,由核心與兩個(gè)模塊組成。通過引入統(tǒng)一方式載入和保存文檔和文檔驗(yàn)證方法對(duì)進(jìn)行進(jìn)一步擴(kuò)展。其中表示的標(biāo)記位正好是低三位都是。但提案被拒絕了。 JS高級(jí)入門教程 目錄 本文章定位及介紹 JavaScript與ECMAScript的關(guān)系 DOM的本質(zhì)及DOM級(jí)介紹 JS代碼特性 基本類型與引用類型 JS的垃...
摘要:作用域鏈用于表明上下文的執(zhí)行順序。當(dāng)前上下文執(zhí)行完畢則出棧,執(zhí)行下一個(gè)上下文。 從一個(gè)簡單的例子出發(fā) 先從一個(gè)簡單的例子出發(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í)行完畢后,會(huì)從任務(wù)隊(duì)列中獲取任務(wù)一個(gè)個(gè)的放在棧中執(zhí)行去執(zhí)行,這個(gè)過程是循環(huán)不斷的,所以整個(gè)的這種運(yùn)行機(jī)制又稱為事件循環(huán)。 寫在前面 說起javascript(以下簡稱js)這門語言,相信大家已經(jīng)非常熟悉了,不管是前端開發(fā)還是后端開發(fā)幾乎無時(shí)無刻都要跟它打交道。雖說開發(fā)者每天幾乎都要操作js,但是你真的確定你掌握了js的運(yùn)行機(jī)制嗎!下面我們就來聊聊這話題。 Ja...
摘要:測(cè)試調(diào)用斷言的執(zhí)行后返回?cái)嘌员徽{(diào)用斷言被調(diào)用了一次斷言傳入的參數(shù)為所創(chuàng)建的函數(shù)還可以設(shè)置返回值,定義內(nèi)部實(shí)現(xiàn)或返回對(duì)象。 在本篇教程中,我們會(huì)介紹 Jest 中的三個(gè)與 Mock 函數(shù)相關(guān)的API,分別是jest.fn()、jest.spyOn()、jest.mock()。使用它們創(chuàng)建Mock函數(shù)能夠幫助我們更好的測(cè)試項(xiàng)目中一些邏輯較復(fù)雜的代碼,例如測(cè)試函數(shù)的嵌套調(diào)用,回調(diào)函數(shù)的調(diào)用等...
摘要:執(zhí)行上下文作用域鏈和內(nèi)部機(jī)制一執(zhí)行上下文執(zhí)行上下文是代碼的執(zhí)行環(huán)境,它包括的值變量對(duì)象和函數(shù)。創(chuàng)建作用域鏈一旦可變對(duì)象創(chuàng)建完,引擎就開始初始化作用域鏈。 執(zhí)行上下文、作用域鏈和JS內(nèi)部機(jī)制(Execution context, Scope chain and JavaScript internals) 一、執(zhí)行上下文 執(zhí)行上下文(Execution context EC)是js代碼的執(zhí)...
閱讀 3789·2021-10-12 10:11
閱讀 2046·2019-08-30 15:53
閱讀 1643·2019-08-30 13:15
閱讀 2358·2019-08-30 11:25
閱讀 1878·2019-08-29 11:24
閱讀 1718·2019-08-26 13:53
閱讀 3603·2019-08-26 13:22
閱讀 1856·2019-08-26 10:24