函數(shù)
(一)函數(shù)的定義與使用
1寻狂、函數(shù)是把一堆重復(fù)的代碼進行封裝访娶,在我們需要用的時候直接調(diào)用就可以了
2又固、作用:代碼重復(fù)調(diào)用
3冰寻、定義:
function 函數(shù)名() {
函數(shù)體----- 它就是重復(fù)的代碼
};
4须教、對象中的函數(shù)方法(一般稱為對象的方法)
var dog = {
color: '白色的',
age: 2,
bark: function() {
console.log('汪汪汪');
}
}
調(diào)用對象中的方法:dog.bark();
5、變量和函數(shù)聲明整體提前
這時打印變量斩芭,值為undefined
這時調(diào)用函數(shù)轻腺,值為函數(shù)體乐疆,函數(shù)正常運行
add();//函數(shù)聲明整體提升,值為函數(shù)體贬养,函數(shù)正常運行
console.log('str的值是',str); // 變量聲明提升挤土,值為undefined
function add() {
var num1 = 100;
var num2 = 20;
var sum = num1 + num2;
console.log(sum);
}
var str = '123456';
6、總結(jié)
1煤蚌、函數(shù)要先定義耕挨,才能調(diào)用
2、函數(shù)的命名:要遵行駝峰式命名方法
3尉桩、函數(shù)命名一旦一樣筒占,后面的會覆蓋前面的
(二)函數(shù)調(diào)用方式
-
手動調(diào)用
function sum() {
var count = 0;
for (var i=0;i<=100;i++) {
count += i;
}
console.log(count);
}
// 手動調(diào)用
sum();
-
事件綁定調(diào)用
<input type="text" onkeydown="sum();"> //鍵盤點擊事件
(三)函數(shù)傳遞參數(shù)
調(diào)用時傳入的數(shù)據(jù),要跟形式參數(shù)一一對應(yīng)
參數(shù):在函數(shù)定義時蜘犁,函數(shù)后面的小括號里面的變量就是參數(shù)翰苫,目的是函數(shù)在調(diào)用的時候?qū)τ脩魝鬟M來的值進行操作
形式參數(shù)
實際參數(shù)
(四)函數(shù)返回值return
- 使用return返回計算結(jié)果
// 需求: 計算兩個數(shù)相加的結(jié)果,并返回給調(diào)用者
function add(num1, num2) {
var sum = num1 + num2;
return sum;
}
var sum = add(10,10);
- 沒寫return,默認(rèn)返回undefined
// 把兩個數(shù)相加的結(jié)果顯示在頁面上
function add2(num1, num2) {
var sum = num1 + num2;
// 沒有return時,默認(rèn)返回undefined
document.write(sum);
}
var sum2 = add2(20,30);
console.log(sum2);
(五)作用域
1这橙、作用域:變量和函數(shù)可被訪問的范圍
2奏窑、window是全局作用域,在全局作用域下聲明的變量為(全局變量)
3屈扎、在局部作用域下聲明的變量為(局部變量)
4埃唯、規(guī)則:
函數(shù)內(nèi)部可以訪問函數(shù)外部的變量
函數(shù)外部不可以訪問函數(shù)內(nèi)部的變量
-
作用域用作用域鏈進行連接
作用域鏈:保證對執(zhí)行環(huán)境有權(quán)訪問變量和函數(shù)的有序訪問
例如:函數(shù)嵌套,最里面的函數(shù)權(quán)限最大鹰晨,可以訪問自己的和外面的墨叛,外面卻不能訪問里面的沒有塊極作用域(區(qū)分作用域以從函數(shù)作為區(qū)分條件)
-
任何一對花括號中的語句集都屬于一個塊,在這之中定義的所有變量在代碼塊外都是不可見的模蜡,我們稱之為塊級作用域漠趁,而Java Script中沒有塊極作用域
-
在form表單中,默認(rèn)<btuuon></button>標(biāo)簽為提交按鈕忍疾,點擊時會刷新頁面闯传,給button標(biāo)簽添加type 值為button,就可以變成單純按鈕使用