1~const/let
console.log(a)//undefined
var a = 1;
相當于
var a;
console.log(a);
a = 1;
變數提升就是js在決議時,會先把宣告的變數提到前邊去,然后再賦值,賦值之前列印a,相當于是宣告了a 但是沒有賦值;所以是undefined.
let和const不存在變數提升
console.log(a,b)
const a = 1;
let b = 1;//直接報錯: Uncaught ReferenceError: a is not defined;
const通常來宣告一個常量,且這個常量的地址值不能被改變
const a = 1;
a=2;
console.log(a)//報錯
const a = 1;
b={};
b.a = 2;
console.log(a)//1,不會報錯
2~模板字面量
模板字面量用的是反引號``
var a = 'asd';
var b = '321';
var c = `${a}${b}asdasdasd`
console.log(c)//asd321asdasdasd 字串拼接
3陣列
let arr1 = Array.from({
0: '1',
1: '2',
2: 3,
length: 3
})
console.log(arr1)//["1", "2", 3]
let arr2 = Array.of(1,2,3,4)
console.log(arr2)//[1, 2, 3, 4];
//find用法
console.log(arr2.find(item=>item>3))//4 尋找陣列中大于3的數字
//fill用法,值,開始下標,結束下標
console.log(arr2.fill("修改的值",1,2));//[1, "修改的值", 3, 4]
findIndex()方法回傳傳入一個測驗條件(函式)符合條件的陣列第一個元素位置;
findIndex()方法為陣列中每個元素都呼叫一次函式執行
如果沒有符合條件的函式則會回傳-1,findIndex()不會改變原來陣列原始值且對于空陣列不呼叫方法;
var arr = [12,13,56,58];
function check(num){
return num>56;
}
console.log(arr.findIndex(check))//3
entries用法 回圈遍歷鍵值對
for(let[key,value]of['a','b'].entries()){
console.log(key,value)// 0 "a" 1 "b"
}
keys() 回圈遍歷鍵值名
for(let key of ['張三','李四','王五'].keys()){
console.log(key) //0,1,2
}
values()回圈遍歷value 和keys()用法一致
//includes() 查找是否包含物件
let arr4 = Array.of('ht','px','me')
console.log(arr4.includes('px'))//true
//復制陣列
let arr5 = [1,2,5],
arr6 = [...arr5];
console.log(arr6)
解構賦值
let [a,b,c] = [1,2,3]
console.log(a)//1
//不完全解構
let [s,d,f ] = [1,2];
console.log(s,f)//1 undefined
可以嵌套
let [a,[[b],c]] =[1,[[2],3]]
console.log(a,b,c) // 1,2,3
當解構模式有匹配結果,且匹配結果時undefined時;會觸發默認值作為回傳結果;
let[a=3,b=a] = [1,2];
console.log(a,b) //1,2
物件模型的解構
let {aaa,bbb} = {aaa:'張三',bbb:'李四'};
console.log(aaa,bbb)//張三,李四
嵌套
let obj = {p:['hello',{y:'word'}]};
let {p:[x,{y}]} = obj
console.log(x)//hello
//解構默認值
let{a=10,b = 5}={a:3};
console.log(a,b) //a=3 b=5
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/234801.html
標籤:JavaScript
上一篇:關于js this的問題
