數(shù)組的基本概念
- JavaScript中數(shù)組的概念和C語言幾乎一樣, 都是指一組有序數(shù)據(jù)集合
- 不同的是由于JavaScript是弱語言, 所以JavaScript的數(shù)組中可以存放不同類型的數(shù)據(jù)
- 不同的是JavaScript中的數(shù)組是引用類型, 提供了很多便捷的屬性和方法, 讓我們使用起來更加簡單
定義數(shù)組
var arr1=new Array();
var arr2=new Array("Saab","Volvo","BMW");
var arr3=[];
var arr4=["Saab","Volvo","BMW"];
使用數(shù)組
var arr1 = new Array();
arr1[0] = 1;
arr1[1] = "12";
arr1[2] = true;
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
注意點:
- C語言中的數(shù)組必須在定義時確定長度, 后續(xù)不可修改
- 而JavaScript中的數(shù)組不需要在定義時確定長度, 后續(xù)可以動態(tài)增長
數(shù)組遍歷
var arr3 = [1, "123", true];
for(var i = 0; i < arr3.length; i++){
console.log(arr3[i]);
}
注意點:
- JavaScript中可以通過數(shù)組的length屬性直接獲取數(shù)組的長度, 不用像C語言一樣額外計算
函數(shù)基本概念
- JavaScript中函數(shù)的概念和C語言幾乎一樣,都是用于封裝一段代碼五续,方便將來重復使用的
- 不同的是JavaScript中的函數(shù)也是一種類型, 是引用類型
函數(shù)的定義
// 格式一:
function 函數(shù)名(形參1, 形參2, 形參3...) {
//函數(shù)體
return 返回值;
}
// 格式二:
var 變量 = 函數(shù)名(實參1, 實參2, 實參3...);
注意點:
- 和C語言一樣, 函數(shù)可以沒有形參, 也可以有一個或多個形參
- 不同的是由于JavaScript是弱語言, 所以形參只用寫一個占位符即可
function sayHi(name) {
console.log(name);
}
sayHi("lnj");
var sayHello = function (name, age) {
console.log("name = "+ name, "age = "+age);
}
sayHello("lnj", 12);
注意點:
- 和C語言一樣, 函數(shù)可以沒有返回值, 也可以有返回值
- 不同的是JavaScript是弱語言, 所以不用只能返回值類型
- 如果函數(shù)沒有顯示的使用 return語句 愈魏,那么函數(shù)有默認的返回值:undefined
- 如果函數(shù)使用 return語句搓谆,那么跟再return后面的值,就成了函數(shù)的返回值
- 如果函數(shù)使用 return語句正卧,但是return后面沒有任何值纫谅,那么函數(shù)的返回值也是:undefined
function sum(a, b) {
var res = a + b;
return res;
}
var res = sum(10, 20);
console.log(res); // 30
function sum(a, b) {
var res = a + b;
return;
}
var res = sum(10, 20);
console.log(res); // undefined
function sum(a, b) {
var res = a + b;
}
var res = sum(10, 20);
console.log(res); // undefined
arguments的使用
- 由于JavaScript中的函數(shù)是引用類型(可以添加屬性和方法)甫何。所以所有函數(shù)都內(nèi)置了一個arguments對象穆咐,arguments對象中存儲了傳遞的所有的實參。arguments是一個偽數(shù)組谜慌,因此及可以進行遍歷
function getSum() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
var sum = getSum(5, 1, 3, 4);
console.log(sum);
函數(shù)作為參數(shù)和返回值
- 由于JavaScript中的函數(shù)也是一種數(shù)據(jù)類型, 所以函數(shù)也可以作為參數(shù)和返回值使用
- 函數(shù)作為其他函數(shù)參數(shù)
var sayHi = function () {
console.log("hello world");
}
function test(fn) {
fn();
}
test(sayHi);
- 函數(shù)作為其他函數(shù)返回值
function test() {
var sayHi = function () {
console.log("hello world");
}
return sayHi
}
var res = test();
res();
匿名函數(shù)
- 沒有名稱的函數(shù), 我們稱之為匿名函數(shù)
- 匿名函數(shù)不能單獨出現(xiàn), 一般作為其他函數(shù)參數(shù)或者返回值使用
// 報錯
function () {
console.log("hello world");
}
// 立即執(zhí)行函數(shù)
(function () {
console.log("hello world");
})();
// 作為函數(shù)參數(shù)
function test(fn) {
fn();
}
test(function () {
console.log("hello world");
});
// 作為函數(shù)返回值
function test() {
return function () {
console.log("hello world");
}
}
var res = test();
res();