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