Javascript中的函式及自定義屬性
阿新 • • 發佈:2018-12-17
一.函式
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