亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript中Function詳解

2019-11-20 13:05:49
字體:
來源:轉載
供稿:網友

關鍵字function用來定義函數。

復制代碼 代碼如下:

//函數聲明式定義:
function funcname([arg1[,args[...,argn]]]){
 statements
}
//函數表達式定義:
var funcname = function ([arg1[,args[...,argn]]]){
 statements
};

注意,function語句里的花括號是必需的,即使函數體只包含一條語句。

在JavaScript中,函數是Function類的具體實例。而且都與其它引用類型一樣具有屬性和方法。

函數名實際上是指向函數對象的指針,函數可以作為參數參與到傳參和返回值中。

函數的對象特性

因為函數是Function的實例,而函數名僅僅是該實例的一個引用地址。因此可以作為參數和返回值參與到函數的傳參過程中。

復制代碼 代碼如下:

function call_some_function(some_function, some_argument) {
    return some_function(some_argument);
}
function add_10(num) {
    return num + 10;
}
console.log(call_some_function(add_10,20)); //30

函數的內部屬性

arguments | this
•arguments對象中保存著傳遞給函數的參數
•arguments.length返回傳入參數的個數
•Note: length屬性表示函數定義時候默認接收的參數數量。arguments.length表示函數實際執行時接收的參數數量。

復制代碼 代碼如下:

function test_arguments() {
    if (arguments.length == 2) {
        console.log(arguments.length);
        console.log(arguments);
    } else {
        console.log(arguments.length);
        console.log(arguments);
        arguments.callee(4, 5);
    };
}(1, 2, 3)
/**
 3
{ '0': 1, '1': 2, '2': 3 }
2
{ '0': 4, '1': 5 }
 **/

•arguments.callee()主要用在遞歸函數中調用函數自身的情境中。js和別的語言不同在于函數名只是一個指針,可以隨時變化,函數中利用函數名來調用自身屬于高耦合,可能會出現問題,而arguments.callee()調用自身就會規避掉這個問題

復制代碼 代碼如下:

function factorial(num) {
    if (num <= 1) {
        return 1;
    } else {
        return num * factorial(num - 1);
    };
}
function callee_f(num) {
    if (num <= 1) {
        return 1;
    } else {
        return num * arguments.callee(num - 1);
    };
}
factorial(10); //運行正常
f = factorial;
factorial = null;
f(10); //error
callee_f(10); //運行正常
f = callee_f;
callee_f = null;
f(10); //運行正常

•this主要用來幫助函數引用函數所處作用域中的對象。

復制代碼 代碼如下:

var color = 'red';
function syaColor() {
    console.log(this.color);
}
syaColor(); //red
var o = new Object();
o.color = 'blue';
o.sayColor = sayColor;
o.sayColor(); //blue

call()和apply()

call()和apply()是每個函數都包含的自有方法。之前已經提到了函數是定義的對象,那么調用函數時候,函數中的this是對當前與下變量的調用。而如果想改變函數執行所在域空間,則可以使用call()和apply()來實現。

復制代碼 代碼如下:

color = 'red';
var o = {color: 'blue'};
function sayColor() {
    console.log(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(o); //blue

app()和call()的作用是相同的,區別主要在于傳入參數的不同。

call(this,para1,prar2,prar3) 第一個參數是函數要執行的作用域,后面的參數是函數的輸入參數,有多少個依次寫多少個。

apply(this,[para1,para2,prara3])第一個參數也是函數要執行的作用域,后面是一個Array的數組對象。

使用call()/apply()來擴充作用域最大的好處是對象和方法的解耦。

內置對象

Global對象可以理解成最外層的對象,所有的對象,以及不屬于其它對象的屬性和方法都被包含在Global對象中。
* isNaN(x) 用來檢查參數x是否為數字。如果為數字返回false,否則返回true
* isFinite(x) 用來檢查參數x是否為無窮大/小,如果是無窮大/小,則返回true
* parseInt(x) 用來解析字符串并返回整數
* parseFloat(x) 用來解析字符串并返回浮點數
* encodeURI()和encodeURIComponent()會對字符串進行特殊的UTF-8編碼,規避一些特殊字符來讓瀏覽器能夠讀懂。他倆的區別主要在于encodeURI()不會對本身屬于URI的特殊字符進行編碼,而encodeURIComponent()會對其發現的所有非標準字符進行編碼。

復制代碼 代碼如下:

var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal%20value.htm#start
console.log(encodeURI(uri))
//http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start
console.log(encodeURIComponent(uri))

•對應的解碼函數為decodeURI()和decodeURIComponent()
•eval(script) 用來將script的內容在解釋器中執行并返回對應的結果。非常強大!

Note:在瀏覽器中,windows對象封裝了Global對象,并承擔了很多額外的任務和功能。

Math對象為另一個內置對象。為JavaScript提供了數學計算功能。

以上就是本文的全部內容了,希望小伙伴們能夠喜歡,能夠對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av一卡二卡| 国产日韩精品视频| 亚洲精品久久久久国产| 色av中文字幕一区| 国产成人综合精品在线| 欧洲精品在线视频| 国产+人+亚洲| 68精品国产免费久久久久久婷婷| 精品国产欧美一区二区三区成人| 国产69精品久久久久久| 77777亚洲午夜久久多人| xxav国产精品美女主播| 亚洲高清免费观看高清完整版| 欧美在线免费视频| 日韩欧美在线观看| 亚洲精品aⅴ中文字幕乱码| 欧美精品免费看| 欧美成aaa人片在线观看蜜臀| 国产女人精品视频| 日韩大陆毛片av| 亚洲mm色国产网站| 亚洲国产精品人人爽夜夜爽| 欧美性视频网站| 欧美在线播放视频| 亚洲一级黄色av| 午夜精品福利视频| 日韩av免费在线播放| 国产日韩在线亚洲字幕中文| 国产精品a久久久久久| 国产精品久久久久久久久久新婚| 色综合老司机第九色激情| 欧美激情久久久久| 成人激情免费在线| 最近2019中文字幕第三页视频| 欧美激情网友自拍| 国产在线a不卡| 成人性生交大片免费观看嘿嘿视频| 北条麻妃一区二区三区中文字幕| 国产精品久久久久9999| 亚洲风情亚aⅴ在线发布| 国产精品九九久久久久久久| 91精品综合久久久久久五月天| 精品国产一区二区三区久久狼5月| 欧美黑人性视频| 日韩av在线免费| 久久久国产一区| 69久久夜色精品国产69乱青草| 欧美成人免费小视频| 中文字幕在线看视频国产欧美| 4438全国亚洲精品在线观看视频| 久久在线精品视频| 在线视频日本亚洲性| 精品国产一区二区三区久久久| 日本在线观看天堂男亚洲| 成人激情视频小说免费下载| 亚洲色图综合网| 国产精品久久久久国产a级| 性欧美xxxx| 欧美资源在线观看| 精品久久久久久中文字幕| 在线看国产精品| 欧美性猛交xxxx免费看久久久| 大荫蒂欧美视频另类xxxx| 91久久久久久久一区二区| 免费91麻豆精品国产自产在线观看| 91视频免费网站| 欧美日韩一区二区三区| 日韩在线视频免费观看高清中文| 在线观看国产精品淫| 亚洲大胆美女视频| 亚洲国产私拍精品国模在线观看| 不用播放器成人网| 亚洲aa在线观看| 日韩在线观看精品| 91亚洲精品久久久久久久久久久久| 国产自产女人91一区在线观看| 国产高清视频一区三区| 日韩成人av网| 久久精品色欧美aⅴ一区二区| 欧美激情一区二区三区高清视频| 91豆花精品一区| 欧美色欧美亚洲高清在线视频| 久久五月情影视| 在线日韩中文字幕| 亚洲网站在线观看| 亚洲毛片一区二区| 久久久欧美一区二区| 亚洲无av在线中文字幕| 国产精品精品久久久久久| 丁香五六月婷婷久久激情| 国产91亚洲精品| 国语自产精品视频在线看抢先版图片| 欧美一区二区大胆人体摄影专业网站| 日韩风俗一区 二区| 欧美精品videos另类日本| 成人午夜高潮视频| 亚洲成人亚洲激情| 国内自拍欧美激情| 国产亚洲精品久久久久动| 国产精品日韩专区| 亚洲理论在线a中文字幕| 亚洲精品国产品国语在线| 欧美精品一区三区| 国产精品第七影院| 成人免费看黄网站| 2019av中文字幕| 国模精品一区二区三区色天香| 日韩av免费看| 欧美丝袜美女中出在线| 日韩中文字幕在线视频播放| 亚洲第一福利网| 色综合影院在线| 精品日韩美女的视频高清| 久久成年人视频| 色妞色视频一区二区三区四区| 国产美女精品视频免费观看| 91夜夜未满十八勿入爽爽影院| 日本三级韩国三级久久| 国产激情999| 欧美夫妻性生活xx| 国产精品午夜一区二区欲梦| 中文欧美在线视频| 中国日韩欧美久久久久久久久| 亚洲精品videossex少妇| 国产精品成人在线| 亚洲网站在线播放| 欧美xxxx做受欧美.88| 国产欧美一区二区白浆黑人| 一区二区成人精品| 成人欧美一区二区三区在线| 91精品视频观看| 最近2019中文字幕mv免费看| 国产精品成人在线| 91麻豆桃色免费看| 2019最新中文字幕| 国产精品午夜视频| 亚洲精品视频免费| 亚洲国产日韩欧美在线99| 日韩中文字幕国产| 91国内精品久久| 久久久久久久久久久国产| 国产精品视频一区二区三区四| 最近2019中文字幕大全第二页| 欧美大片网站在线观看| 久久久久久999| 国产精自产拍久久久久久| www.国产一区| 欧美激情18p| 亚洲第一精品夜夜躁人人爽| 欧美中在线观看| 狠狠色狠狠色综合日日五| 久久精品国产成人精品| 国产精品成人免费电影| 91经典在线视频| 日韩精品免费看| 57pao成人永久免费视频| 97精品一区二区三区| 国产精品女主播视频| 久热爱精品视频线路一| 亚洲免费中文字幕| 亚洲人在线观看| 亚洲福利影片在线| 国产亚洲精品成人av久久ww| 琪琪亚洲精品午夜在线|