JS中的函式初識

2021-08-09 23:56:23 字數 1331 閱讀 7353

首先我們要了解函式是單執行緒的。函式分為兩部分:建立函式和執行函式。

並且每一次執行函式都有執行結果。

函式是指一段在一起的可以做某一件事兒的程式,也叫作子程式(oop)中的方法。

其實我們就可以認為函式是實現某一功能的方法。

接下來我們先從建立函式說起吧。

建立函式

函式分為函式名和函式體

首先會在當前作用域中宣告乙個函式名(宣告的函式名和使用var宣告的變數名是一樣的操作:var sum ; function sum; 這兩個名字算重複了,發生衝突)。

瀏覽器首先會開闢乙個新的記憶體空間(分配乙個16進製制的位址),把函式體中寫好的**當做普通字串儲存在這個記憶體空間中,(建立乙個函式如果不執行,函式沒有意義,因為開闢的空間中儲存的只是單純的**字串)。

把記憶體空間的位址賦值給之前宣告的那個函式名。

function

[函式名]

([形參]

)

執行函式函式名(); // => 把建立的函式執行,而且這個函式可以執行很多次。

不管執行多少次,每一次執行都相當於把函式體中實現功能的js**重複的執行了一遍。

目的:把之前開闢空間儲存的實現具體功能的js**執行。

當乙個函式執行的時候。

1、瀏覽器會開闢乙個新的``私有作用域`(只能執行函式中之前編寫的js**)

2、形參賦值

3、私有作用域的變數提公升

4、把之前建立的時候,儲存的那些js**字串拿到私有作用域中,然後把它們變為js表示式,從上到下依次執行。

5、私有作用域是否銷毀的問題

函式執行分析**

我們首先要明確一點,那就是什麼時候用函式?

在真實的專案中,我們一般會把實現乙個具體功能的**封裝在函式中。

這樣做用兩個好處。

第一、如果當前這個功能需要在頁面中執行多次,不封裝成為函式,每一次想實現這個功能,都需要重新把**寫一遍,浪費時間;而封裝在乙個函式之中,以後想實現多次這個功能,我們就沒有必要再重新寫**了,只需要把函式重新執行即可,提高了開發效率。

第二、封裝在乙個函式中,頁面中就基本上很難出現重複一樣的**了,減少了頁面中**的冗餘度,提高了**的重複利用率:低耦合高內聚

以上的特點稱之為函式封裝。(oop物件導向程式設計思想,類的封裝、繼承、多型)

js之初識函式

1.關於函式 函式屬於物件,卻是物件裡的一等公民,有著至高無上的地位。跟普通物件一樣,定義屬性和方法,擁有原型物件prototype。還可以進行呼叫並執行自身的 塊。function fn fn.attr value fn.method function fn.prototype 2.函式的作用域 ...

初識JS中的「類」

多型 多型指的是任何方法都可以引用,繼承層次中高層的方法 即子類可以引用,繼承父類身上的方法 其中,方法的多型性取決於你是在哪個類的例項中引用它。下面是一段偽 class vehicle drive class car inherits vehicle class speedboat inherit...

初識STL中的unique函式

該演算法刪除相鄰的重複元素,然後重新排列輸入範圍內的元素,並且返回乙個迭代器 容器的長度沒變,只是元素順序改變了 表示無重複的值範圍的結束。在stl中unique函式是乙個去重函式,unique的功能是去除相鄰的重複元素 只保留乙個 其實它並不真正把重複的元素刪除,是把重複的元素移到後面去了,然後依...