1. 程式人生 > >Javascript中的函式及自定義屬性

Javascript中的函式及自定義屬性

一.函式

1.函式:將一系列程式碼或者操作行為打包到一起形成的內容就是函式,是一塊有特定功能的程式碼。

2.函式的分類

a.具名函式:有函式名的就是具名函式

function foo(){//foo就是函式的名字,function表示函式的宣告,看不到表現效果
    console.log("hello world");
}
foo();//執行函式,表示函式執行成功了

注:函式執行時需要加(),也就是說,直接加括號表示函式執行了。

//on事件後面所賦值的內容一定是函式,而不是函式的執行結果
<script>
    box.onclick = foo();//點選box沒有反應,檢查時會發現hello world已經執行了

    //解決方法
    //方法一:
    box.onclick = function(){
          foo();
    }

    //方法二:
    box.onclick = foo;//點選後會答應hello world
</script>

任何程式碼執行完成之後都會有返回值的,包括函式,預設返回值是undefined;

b.匿名函式:沒有名字的函式,通常不能直接宣告,會報錯。

解決方法:

(1)新增使用的途徑

box.onclick = function(){
    console.log("hahaha");
};

(2)加括號,立即執行

(function(){
    console.log("hahaha")
}())
//或者
(function(){
    console.log("hahaha")
})()
//function前面加括號是為了防止瀏覽器不知道函式是從哪裡開始,括號可以替換為+,-,~,$等

(3)把這個匿名函式賦值給一個變數

let fo1 = function(){
    console.log("hahaha");
};
//和具名函式不同,此賦值操作成為函式表示式

3.引數

函式引數分為輸入和輸出

輸入:

function foo(引數){}//小括號裡的數就是引數

function calc(x){
    console.log(x*x);
};
calc(9);
/*
    x:形參,用來表示將要傳進去的引數
    9:實參,用來表示實際傳進來的引數
不傳引數會返回undefined
*/
function calc(x,y){
    console.log(x+y);
};
calc(2,3)
/*
    多傳引數也不會報錯,比如calc(1,2,569),會打印出來3,它會拿自己需要的結果進行計算,如果只想傳第二個引數 那麼calc(undefined,5)就可以了;
如果檢測到引數是undefined,那麼就會使用預設值
*/

輸出:

關鍵詞:return

function calc(x=1,y=2){
    return x+y;
};
calc(1,2)
/*
    在函式裡面用return來返回結果並結束函式,return之後函式就執行完成了,返回值可以返回任何值
*/

二:自定義屬性

不能通過訪問屬性的方式獲取元素的自定義屬性

增:box.setAttribute

刪:box.removeAttribute

改:box.setAttribute

查:box.getAttribute