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