0x00 內置對象
·Date對象中的getMonth()方法獲取的月份比實際月份小一;
·獲取時間戳的方法:
①var time = +new Date();
②var time = Date.now(); // h5 新增
·數組對象常用方法
①isArray();判斷是否爲數組,返回值爲true or false;
②push();向數組末尾添加數組元素; 返回值爲數組長度;
③pop();向數組末尾去除一個元素;返回值爲刪除的元素
④unshift();向數組開頭添加數組元素;返回值爲數組長度;
⑤shift();刪除數組第一個元素;返回值爲刪除的元素;
⑥reverse();翻轉數組;
⑦sort();數組排序
升序
<script>
let arr1 = [1,39,24,11,456];
arr1.sort((a,b) => {
return a-b;
})
console.log(arr1);
</script>
降序
<script>
let arr1 = [1,39,24,11,456];
arr1.sort((a,b) => {
return b-a;
})
console.log(arr1);
</script>
⑧查找數組索引
indexOf();從數組前面開始查找,找到第一個匹配的元素後返回該元素的索引;若無匹配,則返回-1;
lastIndexof();從數組末尾開始查找,找到第一個匹配的元素後返回該元素的索引;若無匹配,則返回-1;
面試經典案例,數組去重
<script>
let arr1 = [1,39,24,11,456,1281,39,234,123,5,23,53,11,234];
let unique = (arr1) => {
let arr2 = [];
for(let i = 0;i < arr1.length;i++){
if(arr2.indexOf(arr1[i]) === -1){
arr2[arr2.length] = arr1[i];
}
}
console.log(arr2);
}
unique(arr1);
</script>
⑨join();可以將數組轉換爲字符串,分隔符作爲參數輸入;
⑩splice();可以用來刪除或者添加數組中的元素
let myFish = ['angel', 'clown', 'drum', 'sturgeon'];
let removed = myFish.splice(2, 1, "trumpet");
// 運算後的 myFish: ["angel", "clown", "trumpet", "sturgeon"]
// 被刪除的元素: ["drum"]
0x01 字符串對象
①定義字符串時進行了基本數據類型包裝,將簡單數據類型轉換爲了複雜數據類型
②字符串的不可變性,當聲明並賦值一個字符串時,js在內存中開闢了一塊空間用來存儲該字符串,並指向這個空間,當字符串被修改時,js會新開闢一塊空間用來儲存新字符串,並指向新的空間,但原來的值並沒有改變
經典面試題 查找某字符串中的某個元素的出現次數和位置
<script>
let str1 = 'shdbavsciajsifuirhabsj';
let queryString = (str1) => {
let frequency = 0;
let lastFlag = -1;
for (let i = 0; i<str1.length; i++){
let flag = str1.indexOf('s',i);
if(flag !== -1 && flag !== lastFlag){
frequency++;
lastFlag = flag;
console.log('第'+frequency+'次出現,位置爲'+flag);
}
}
}
queryString(str1);
</script>
③charAt();根據位置返回字符
④charCodeAt();根據位置返回字符的ascii碼,可以用來判斷用戶按了哪個鍵
經典面試題 判斷一個字符串中出現次數最多的字符是哪個,並統計其次數
<script>
let str1 = 'shdbavsciajsifuirhabsj';
let queryString = (str1) => {
let obj = {};
for (let i = 0; i < str1.length; i++){
if(obj[str1[i]]){
obj[str1[i]]++;
}else{
obj[str1[i]] = 1;
}
}
let maxNum = 0;
let maxChar;
for (let k in obj){
if(obj[k] > maxNum){
maxNum = obj[k];
maxChar = k;
}
}
console.log('出現次數最多的字符是' + maxChar + '\n' + '出現次數爲:' + maxNum );
}
queryString(str1);
</script>
⑤substr();截取字符串,輸入的參數爲起始位置和截取的長度;
⑥replace();替換字符串;
0x02 簡單數據類型和複雜數據類型
簡單數據類型又稱值類型,在儲存時變量儲存的是值本身,簡單數據類型有string,boolean,number,null,undefined五種,其中null返回值爲空對象;簡單數據類型數據存儲直接存儲在棧裏面。所以簡單;類型的傳參,數據不會互相影響;
複雜數據類型又稱引用類型,用new創建的都是複雜數據類型。複雜數據類型在棧中存放地址,地址指向堆中的某區域,數據都儲存在堆中的這塊空間中。所以複雜數據類型的傳參,屬性值的更改會相互影響;
<script>
let obj = {
name : 'aaa',
age : 14
}
let fn = (obj1) => {
console.log(obj1.age);
obj1.age = 28;
}
fn(obj);
console.log(obj.age);
</script>
0x03 Dom
①console.dir()可以打印元素對象,更好的查看裏面的屬性方法;
②常用的Dom選擇元素的方法:getElementsById(); getElementsByTagName() getElementsByClassName();
querySelector(); // h5新特性,只返回匹配到的第一個元素
querySelectorAll(); //同上,返回匹配到的所有元素