- js 中 垃圾回收
//将不在使用的對象設定為null , js就會自動進行垃圾回收機制
var obj = {};
obj = null;
- js 中 數組基本介紹
- 數組也是一個對象
- 與普通對象功能類似,用來存儲值。對象用字元串作為屬性名(索引),數組用數字(從0開始)作為索引
- 數組的存儲性能比普通對象好
//數組的基本操作
var arr = new Array();
var arrs = []; // 推薦使用這種方式建立數組
arr[0] = 1;
arr[1] = 2;
arrs[0] = 11;
arrs[11] = 22;
console.log(arr); //輸出 [1, 2]
console.log(arrs); //輸出[11, empty × 10, 22]
console.log(arr.length); //輸出2
console.log(arrs.length); //輸出12
arr.length = 1;
console.log(arr); //輸出[1]
注意:
1、對于連續數組,使用length可以擷取數組的長度; 對于非連續數組,使用length會擷取到數組的最大索引+1
2、修改數組長度,如果修改值大于原長度,則預設添加元素個數。如果小于原長度,則删減元素個數
- js 中 數組常用方法介紹
var arr = ["zhangsan","lisi","wangwu"];
// push() 方法,向數組末尾添加一個或多個元素,并傳回添加後的數組長度
var res = arr.push("qianliu","zhaoqi"); // 檢視push的傳回值
console.log(arr); //輸出["zhangsan", "lisi", "wangwu", "qianliu", "zhaoqi"]
console.log(res); //輸出5,傳回值為數組長度
// pop() 方法,删除數組最後一個元素,并傳回被删除元素
var res2 = arr.pop();
console.log(res2); //輸出["zhangsan", "lisi", "wangwu", "qianliu"]
console.log(arr); //輸出zhaoqi,傳回值為被删除元素
// slice() 方法 從數組提取指定元素。該方法不會改變原數組,封裝到一個新數組中傳回。
// 第一個參數:截取開始位置的索引,包含開始索引。第二個參數:截取結束位置的索引,不包含結束索引。
// 第二個參數可以不寫,預設從開始位置全部截取。
// -1 表示倒數第一個,-2表示倒數第二個
var res3 = arr.slice(0,2);
var res4 = arr.slice(0);
var res5 = arr.slice(-1);
var res6 = arr.slice(-2);
var res7 = arr.slice(0,-1);
console.log(res3); //輸出["zhangsan", "lisi"]
console.log(res4); //輸出["zhangsan", "lisi", "wangwu"]
console.log(res5); //輸出["wangwu"]
console.log(res6); //輸出["lisi", "wangwu"]
console.log(res7); //輸出["zhangsan", "lisi"]
// splice() 方法, 删除數組中指定的元素,操作的是元素組,并傳回被删除元素
// 第一個參數表示開始位置的索引,第二個參數表示删除的數量
var res8 = arr.splice(1,2);
console.log(arr); //輸出["zhangsan"]
console.log(res8) //輸出["lisi", "wangwu"]
// 其他函數不多加贅述,需用的時候查手冊即可
- js 中 數組周遊
//for循環周遊
for(var i = 0; i<arr.length;i++) {
console.log(arr[i]);
}
//forEach周遊; (這個方法僅支援IE8以上的浏覽器使用)
//該方法需要回調函數作為參數 ,該回調函數中傳遞三個參數:
//第一個參數:目前周遊的元素值。第二個參數:目前周遊的索引值。第三個參數:目前周遊的數組
arr.forEach(function(value,index,obj){
console.log(value);
console.log(index);
console.log(obj);
})
- js 中 apply方法和call方法
// 這兩個方法都是函數對象的方法。
// 調用這兩個方法後,可以将一個對象指定為第一個參數,此時該函數執行時的this将變為這個對象。
// call()方法可以将實參在對象之後依次傳遞
// apply()方法需要将實參封裝成一個數組再傳遞
function fun(a,b) {
console.log(a);
console.log(b);
console.log(this);
}
var obj = {name:"zhangsan"};
fun(1,2); //this輸出window
fun.call(obj,1,2); //this輸出{name:"zhangsan"}
fun.apply(obj,[1,2]); //this輸出{name:"zhangsan"}
- js 中 arguments(實參清單)
// 在調用函數時,浏覽器會傳遞兩個隐含參數
// 第一個:函數的上下文對象 this; 第二個:封裝實參的對象arguments(類數組對象)
// 傳遞的所有實參都會被封裝到arguments中
// 不定義形參時,仍可以使用arguments來使用實參
function fun(){
console.log(arguments[0]); //輸出Arguments(3)["hello", true, "world", callee: ƒ, Symbol(Symbol.iterator): ƒ]
console.log(arguments.length); //輸出3,實參數量
}
fun('hello',true,'world');
- js 中 Date對象 (時間)
// 建立Date對象
var d = new Date(); //目前時間
var d2 = new Date("12/03/2022 12:12:12"); //建立指定時間(日期格式為:月份/日/年/ 時:分:秒)
var date = d2.getDate(); // 擷取目前日期是幾日
var day = d2.getDay(); // 擷取目前日期周幾
- js 中 Math
//絕對值
console.log(Math.abs(-1)); //輸出1
//向上取整
console.log(Math.ceil(2.1)); //輸出3
//向下取整
console.log(Math.floor(2.1)); //輸出2
//四舍五入取整
console.log(Math.round(2.1)); //輸出2
//生成随機數 x-y之間的随機數: Math.round(Math.random()*(y-x)+x)
console.log(Math.round(Math.random()*19)+1); //1-20的随機數
//擷取多個數中的最大值/最小值
var max = Math.max(10,11,12,13);
var min = Math.min(1,2,3,4);
console.log(max); //輸出13
console.log(min); //輸出1