JavaScript 個人筆記6 再說函式

2021-06-29 16:05:31 字數 1488 閱讀 8838

在js中,函式可以分為3中:1)函式宣告 fd(function declare)  2),函式表示式 fe  3) function類。

函式宣告 fd:這種是最常見的。

function foo(){}

函式宣告在進入上下文時就會建立,所以針fd,在**結構上往往可以會出現

var fooresult = foo();

function foo(){} 

即呼叫者在foo宣告之前都可以。

fd一般出現在程式主體或者其他函式體中,這種函式的函式名不可省略,因為這個函式名本身就是乙個函式變數。

乙個比較有意思的現象的是,在函式申明的後面(如果有分號;的話,那麼在分號之前),可以插入乙個表示式,而執行正常,比如

function func(){}(1);

function func(){}1;

function func(){}"expression";

...諸如此類,另外,可以值得說明的是,只有函式申明後面可以這麼做,很簡單的乙個測試方法類似下面:

function foo(){}1(1); 會提示 number is not a function.

2)  函式表示式 fe

函式表示式一般的形式為 function [foo](){},即這裡的函式名稱是可有可無,其實宣告了函式名稱,除了在這個函式體中可以引用,其他地方嘗試呼叫都是提示undefine。

fe的乙個優點就是不會「汙染」變數物件,因為其function name是可有可無的,通常使用的更多的是匿名的方式。

函式表示式常用的情況是為變數或者作為引數傳遞,另外一種情況就是用作立即執行的,比如:

(function())(); 

值得說明的是,這裡的兩個括號,分別是 分組操作符,將乙個函式轉變為函式表示式,後面的括號是呼叫一般function的格式。

3)function類

就是建立function的物件,用於模擬物件導向。

一些小點總結:

1)js裡面,當function中沒有return,或者return後面的表示式為空,再或者返回的是基本型別,[number,string,boolean,] null, undefined,返回的是function物件。

2)  instanceof 基本型別的變數的結果都是null

3)number + string 遇到這種表示式都會主動呼叫tostring.

4)  number - string 這種表示式會主動將string轉化為number

5)在嘗試轉化為numbe時嘗試呼叫valueof

6)  在嘗試轉化為string時會嘗試呼叫tostring

7)(1,3,4,2) 返回的結果是2,因為括號裡面的內容其實是由逗號,組成的表示式,結果是2

8)  === !== 都是不轉換資料型別;而去掉乙個等號(=)後就會嘗試資料型別的轉換

9)函式宣告在進入上下文時已經建立,建立的結果是,函式名稱作為乙個變數物件存在於當前的執行環境中,即該環境中多了乙個以該函式名為名稱的變數

認知天性個人筆記6

心理學家比約克夫婦創造了乙個詞,來描述那些能換來更牢固學習成果 的短期麻煩,即 合意困難 編碼 大腦會把你感知到的東西轉化成化學與生物電形式的變化,這些變化就形成了一種心理表徵。大腦是如何把感官感知到的東西轉化為有意義的心理表徵的,就目前來說,人類還不能完全理解這一過程。我們把這 個過程叫作編碼。鞏...

HTML CSS基礎知識個人筆記 6

2.定位 2.1 靜態定位 static 2.2 相對定位 relative 2.3 絕對定位 absolute 2.4 固定定位 fixed 2.5 絕對定位 特殊固定 和浮動的隱藏模式轉換 2.6 定位z index疊放順序 2.7 經典案例 清除浮動的問題 就是由於子級元素的浮動導致父級元素的...

JavaScript入門指南 6

建構函式 var obj new object obj.name tom obj.age 23 alert obj.name tom alert obj.age 23 物件字面量 var obj obj.name tom obj.age 23 alert obj.name tom alert obj...