国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript 函數(shù)、函數(shù)構(gòu)造、函數(shù)調(diào)用、參數(shù)、函數(shù)返回值、變量的作用域、預(yù)解析

這篇具有很好參考價(jià)值的文章主要介紹了JavaScript 函數(shù)、函數(shù)構(gòu)造、函數(shù)調(diào)用、參數(shù)、函數(shù)返回值、變量的作用域、預(yù)解析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、函數(shù)及函數(shù)的構(gòu)造

函數(shù)是一個(gè)可重用的代碼塊,用來(lái)完成某個(gè)特定功能。每當(dāng)需要反復(fù)執(zhí)行一段代碼時(shí),可以利用函數(shù)來(lái)避免重復(fù)書(shū)寫(xiě)相同代碼。

函數(shù)包含著的代碼只能在函數(shù)被調(diào)用時(shí)才會(huì)執(zhí)行,就可以避免頁(yè)面載入時(shí)執(zhí)行該腳本

簡(jiǎn)單來(lái)說(shuō)就是一個(gè)封裝,封裝的是一個(gè)特定的功能,重復(fù)使用

函數(shù)的三種定義方法:

Function構(gòu)造函數(shù)定義函數(shù)

var 函數(shù)名 = new Function(“參數(shù)1”,”參數(shù)2”,”參數(shù)3”……”函數(shù)體”);

function語(yǔ)句定義函數(shù)

function 函數(shù)名 (參數(shù)1,參數(shù)2……[形參]){
  <語(yǔ)句塊>
  return 返回值
}

在表達(dá)式中直接定義函數(shù)

var 函數(shù)名 = function (參數(shù)1,參數(shù)2,…){函數(shù)體};

注意:

函數(shù)名的書(shū)寫(xiě)規(guī)范,不能一數(shù)字特殊符號(hào)和關(guān)鍵字命名,一般命名方式小駝峰

二、調(diào)用函數(shù)

1.直接調(diào)用

  // //直接調(diào)用,window.窗口調(diào)用
        // window.show() //show()

2.事件處理中調(diào)用

//事件中調(diào)用
        //<div onclick="show()">hello</div>

3.將函數(shù)的返回值賦給變量

 //將函數(shù)的返回值賦給變量
        var t = show()

三、參數(shù)

形參:定義函數(shù)時(shí),函數(shù)名后面()中的參數(shù);JavaScript中的函數(shù)允許給行參賦初始值

實(shí)參:調(diào)用函數(shù)時(shí),傳遞的參數(shù)

參數(shù)的匹配: 默認(rèn)情況下,形參和實(shí)參是一一對(duì)應(yīng)的 但是當(dāng)傳遞的參數(shù)個(gè)數(shù)與函數(shù)定義好的參數(shù)個(gè)數(shù)可以不匹配當(dāng)不匹配時(shí)

  • 如果傳遞的參數(shù)個(gè)數(shù)小于函數(shù)定義的參數(shù)個(gè)數(shù),JavaScript會(huì)自動(dòng)將多余的參數(shù)值設(shè)為undefined;

  • 如果傳遞的參數(shù)個(gè)數(shù)大于函數(shù)定義的參數(shù)個(gè)數(shù),那么多余傳遞的參數(shù)將會(huì)被忽略掉。

如果傳遞的參數(shù)是一個(gè)數(shù)組的話,一一對(duì)應(yīng)太過(guò)麻煩,我們就用arguments,獲取所有實(shí)參

 function show (a,b){
            console.log(arguments.length);
        }
 show('guo','yuan')
function Test(a,b){
    alert(typeof(arguments)); // 獲得類型
    alert(arguments[1]);      // 獲取下標(biāo)為1的參數(shù)值
    alert(arguments.length);  // 獲取參數(shù)的長(zhǎng)度
    alert(arguments.callee);  // 獲取函數(shù)的所有內(nèi)容
}
Test("zhang","li");

四、函數(shù)的返回值

return特點(diǎn):
? 1)函數(shù)內(nèi)部的值(局部變量),想要在函數(shù)外部進(jìn)行(全局變量)使用,就可以使用return
? 2)如果沒(méi)有return,那么return的返回值默認(rèn)值undefined
? 3)return可以返回值,但是只能返回一個(gè);如果想要返回多個(gè),可以使用數(shù)組進(jìn)行返回
? 4)在函數(shù)中,只要看到return,就表示函數(shù)的結(jié)束,后面的代碼都不會(huì)執(zhí)行

五、變量作用域

全局變量: 在函數(shù)外聲明的的變量為全局,在整個(gè)JS文檔中生效

局部變量: 在函數(shù)內(nèi)用var聲明的變量為局部變量,只能在函數(shù)內(nèi)部使用。

局部變量變成全局:
? return 返回
? 去除 var 關(guān)鍵詞

什么是作用域鏈

  • 只要在js中創(chuàng)建變量,就會(huì)存在作用域【全局作用域】

  • 寫(xiě)在函數(shù)內(nèi)部的被稱為局部作用域

  • 如果函數(shù)中還有函數(shù),那么在這個(gè)作用域中就又可以誕生一個(gè)新的作用域

  • 在函數(shù)中如果在當(dāng)前作用域中沒(méi)有查到值,就會(huì)向上級(jí)作用域去查,直到查到全局作用域,這樣一個(gè)查找過(guò)程形成的鏈條就叫做作用域鏈。

六、預(yù)解析

預(yù)解析,又稱之為變量提升,在js代碼真正執(zhí)行之前,進(jìn)行提前加載,把所有帶有var和function的關(guān)鍵字進(jìn)行預(yù)

//預(yù)解析:
            var function 
            console.log(fn) // 函數(shù)體
            var fn = 10;
            function fn(){
            }
            console.log(fn) // 變量

同時(shí)出現(xiàn)變量和函數(shù)的提升,在他們兩個(gè)之前輸出的話解析的是函數(shù)體,預(yù)解析的優(yōu)先級(jí)大于變量的

如果在他們兩個(gè)之后輸出的話解析的是變量,因?yàn)楦鶕?jù)優(yōu)先棧內(nèi)存找到數(shù)據(jù)的執(zhí)行代碼順序先找到的var變量

預(yù)解析相關(guān)案例練習(xí):

// 案例1
var num = 10;
fun();
function fun(){
  console.log(num);
  var num = 20;
}
// 案例二
var num = 10;
function fun() {
    console.log(num);
    var num = 20;
    console.log(num);
}
fun();

// 案例三
var a = 18;
f1();
function f1() {
    var b = 9;
    console.log(a);
    console.log(b);
    var a = 13;
}

// 案例四
console.log(a,b,c);
var a = b = c = 5;

// 案例四
f1();
console.log(c);
console.log(b);
console.log(a);
function f1() {
    var a = b = c = 9;
    console.log(a);
    console.log(b);
    console.log(c);
}
// 案例五
fn();//報(bào)錯(cuò) 只預(yù)解析“=”左邊的,右邊的是指針,不參與預(yù)解析
var fn=function(){
    console.log(11);
}
// 案例六
function fn(){
    console.log(a);
    a=100;
}
fn();
console.log(a);
//注意:js中,如果在不進(jìn)行任何特殊處理的情況下,上面的代碼報(bào)錯(cuò),下面的代碼不再執(zhí)行

// 案例七
console.log(show);
function show(){
  console.log(123);
}
var show = 10;

// 案例八
function show(){
  console.log(123);
}
var show = 10;
console.log(show);

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-741795.html

到了這里,關(guān)于JavaScript 函數(shù)、函數(shù)構(gòu)造、函數(shù)調(diào)用、參數(shù)、函數(shù)返回值、變量的作用域、預(yù)解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包