摘要:函數函數的概述所謂函數就是只被定義一次但可能被執行或調用多次變量與函數的區別變量存的是數據內容而函數存的是語句塊定義函數備注定義函數時函數體的內容不會被執行調用函數時函數體才被執行注意一般以個函數就去完成一個功能函數聲明方式語法函數名稱
函數 函數的概述
所謂函數就是只被定義一次,但可能被執行或調用多次
變量與函數的區別: 變量存的是數據內容而函數存的是語句塊
定義函數備注:
定義函數時 - 函數體的內容不會被執行
調用函數時 - 函數體才被執行
注意: 一般以個函數就去完成一個功能
1.函數聲明方式:
語法: function 函數名稱 () {
函數體 - 語句塊 }
注意: 定義函數時 - 函數體的內容是不會被執行的
示例代碼:
function fu(){ console.log("一花一世界") }
2.字面量/直接量方式:
語法: var 函數名稱 = function(){
函數體 }
示例代碼:
var fun = function(){ console.log("這是一個函數"); }; // 調用函數 -> 函數體的內容才被執行 fun();
注意: 控制臺調用函數的語法是函數名加( )而不是console.log( )
示例代碼:
/* 調用函數 */ fu()變量與函數
var v = 100;/* 定義變量,并初始化值 */ console.log(v);/* 調用變量 */ // 變量是允許被重新賦值的 v = function(){ console.log("這是一個函數"); } // v既是個變量,又是個函數 console.log(v);// 調用結果為 [Function: v] v();/* 函數的調用 */
控制臺效果圖:
注意: 一旦有同名的變量時下面的函數則不生效
示例代碼:
var v2 = 200; function v2(){ console.log("這是一個函數"); } // v2是變量 - TypeError: v2 is not a function - 表示 v2 不是一個函數 console.log(v2); v2();
控制臺效果圖:
函數參數分類兩種:
形參 : 就是定義函數后的小括號叫形參 - function fun(形參)
注意: 允許定義多個形參 - 形參之間使用逗號分隔
實參 : 就是調用函數后的小括號叫實參 - fun(實參)
注意: 形參的個數與實參不一定是一致的
參的個數多于實參的個數 -> 多余的形參沒有值(默認為 undefined)
實參的個數多余形參的個數 -> 多余的實參沒有對應的形參
形參與實參根據占位符進行一一對應
示例代碼:
function fun(a){// 在函數中定義一個變量,但未初始化值 console.log(a); } fun(100, 200);// 為函數中定義的變量初始化值return語句
函數的return語句
注意:
并不是必要的 - 可有可無
作用 - 作為函數的返回值(數據內容)
用法 - 一般會被編寫在函數體的最后面
示例代碼:
function fun(){ console.log("一花一世界"); return 100; } /* 將函數的返回值 賦值到變量中 */ var result = fun(); console.log(result); console.log(fun());/* 打印函數調用的結果 */ console.log(fun);/* 打印變量的值 */
函數的return語句
注意:
的確允許不編寫在函數體的最后面
一旦return語句不在函數體的最后面 - return語句之后的代碼都不再執行
示例代碼:
function fn(){ console.log("這是return語句之前..."); return; console.log("這是return語句之后..."); } var result = fn(); console.log(result);// 100目前JavaScript得到undefined值的情況總結:
定義變量,但未初始化值
定義變量,并初始化值為 undefined
訪問數組中不存在的位置 - 默認值為 undefined
在函數體調用沒有定義值的形參 - 默認值為 undefined
當函數定義時,沒有指定返回值 - 默認返回值為 undefined
作用域就是變量和函數都有作用域,作用域就是變量和函數的可被訪問范圍,控制著變量和函數的可見性和生命周期- 函數作用域就是某一個函數里的
函數以外的叫全局作用域
備注: 函數作用域中的變量叫局部變量
全局作用域與局部作用域 全局作用域
全局作用域(函數作用域之外的范圍) - 全局變量
全局變量的作用域 - 全局作用域 + 函數作用域
注意: 全局作用域不能訪問局部變量
全局作用域與局部作用域示例代碼對比:
var v1 = 100; console.log(v1); function fun(){ /* 函數作用域 - 局部變量 * 局部變量的作用域 - 當前函數作用域 */ var v2 = 200; console.log(v1); console.log(v2); } console.log(v1); fun(); // 全局作用域不能訪問局部變量 // console.log(v2); function fn(){ console.log(v2); } fn();局部作用域與函數的參數
局部變量 - 作用于當前函數作用域中
局部變量的值 - 只能在當前函數作用域進行初始化
函數的參數 - 作用于當前函數體中
參數的值(實參) - 在全局作用域中傳遞的
示例代碼:
var num = 200; function fun(a){ var v = 100; console.log(v + a); } fun(num);
控制臺調用圖:
是指將函數實參的變量值賦值給函數形參,使實參和輸出結果一樣
在對局部變量進行修改時,不會修改全局變量
示例代碼:
/* 按值傳遞 */ var num = 100;/* 定義一個全局變量 */ /* 定義一個函數 */ function fun(num){/* 形參 */ num++; console.log("這是函數內部的值: " + num);// 101 } /* 調用指定函數 - 實參傳遞的是全局變量的值 */ fun(num);/* 實參 */ /* 調用指定全局變量 */ console.log("這是全局作用域的值: " + num);// 100 101 var v = 200; function fn(){ v++; } fn(); console.log(v);// 201聲明提前
表示在使用變量時,先調用變量,在對變量進行定義
注意: 語法不會報錯,會顯示 undefined
示例代碼:
console.log(num);// undefined var num = 100;/* 定義全局變量 */ /* 定義函數 */ function fun(){ // 全局變量與局部變量同名時 - 在當前函數作用域中只能訪問局部變量 console.log(num);// undefined var num = 200;/* 定義局部變量 */ // 就近原則 console.log(num);// 200 } /* 調用函數 */ fun(); // 局部變量在全局作用域中無法訪問 - 只能訪問全局變量 console.log(num);// 100
控制臺調用圖:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96885.html
摘要:關鍵字關鍵字描述本身沒有任何含義但它也可以代表任何含義被自動定義在所有的函數作用域中都有一個共同點它總是要返回一個對象指向哪個對象不取決于定義在哪它取決于調用位置注意建議搞不明白時盡量不要使用否則會很混亂一定要理解之后使用的基本用法表示在函 this關鍵字 this關鍵字描述 this本身沒有任何含義,但它也可以代表任何含義 this被自動定義在所有的函數作用域中 this都有一個共...
摘要:繼承原型鏈所謂言行鏈就是如果構造函數或對象的原型指向構造函數或對象的原型再指向構造函數或對象以此類推最終的構造函數或對象的原鄉指向的原型由此形成一條鏈狀結構被稱之為原型鏈示例代碼原型鏈通過構造函數創建對象將的原型指向對象通過構造函數創建對象 繼承 原型鏈 所謂言行鏈就是如果構造函數或對象A,A的原型指向構造函數或對象B,B的原型再指向構造函數或對象C,以此類推,最終的構造函數或對象的原...
摘要:數組數組的概念所謂數組就是用來存儲多個值的容器數組中的每一個值叫元素每個元素都有唯一的一個位置用數字表示的叫做索引數組用字符串表示叫關聯數組備注數組是無類型的沒有特定類型要求就是存啥都行注意數組是動態的就是根據需要可以插入新的東西也可以刪 數組 數組的概念 所謂數組就是 - 用來存儲多個值的容器,數組中的每一個值叫元素,每個元素都有唯一的一個位置,用數字表示的叫做索引數組,用字符串表...
摘要:嚴格模式嚴格模式的概念所謂嚴格模式就是對中的一種限制性更強的方式屬于代碼的一種強制規則來規范代碼的格式簡單的說就是必須按照嚴格模式的規則書寫代碼否則就會報錯嚴格模式修正了一些引擎難以優化的錯誤同樣的代碼有些時候嚴格模式會比非嚴格模式下更加快 嚴格模式 嚴格模式的概念 所謂嚴格模式就是對JavaScript中的一種限制性更強的方式. 屬于代碼的一種強制規則,來規范代碼的格式簡單的說就是...
摘要:類型與函數的概念函數這樣的一段代碼它只定義一次但是可能被執行或調用多次類型是提供的引用類型之一通過類型創建對象在中函數也是對象的形式存在注意每個函數都是以個對象與函數函數聲明方式示例代碼一笑一人生字面量方式示例代碼一花一世界判斷函數是否為類 Function類型 Function與函數的概念 函數這樣的一段JavaScript代碼,它只定義一次,但是可能被執行或調用多次 Functi...
閱讀 2609·2021-11-18 10:02
閱讀 2279·2021-09-30 09:47
閱讀 1745·2021-09-27 14:01
閱讀 3109·2021-08-16 11:00
閱讀 3163·2019-08-30 11:06
閱讀 2392·2019-08-29 17:29
閱讀 1532·2019-08-29 13:19
閱讀 445·2019-08-26 13:54