Let 具有塊級做用域
(1)沒有預解析,不存在變量提高chrome
Let a=12; function show(){ console.log(a); //Tdz 開始暫時性死區, let a=5; //TDZ結束 }
(2)同一做用域不能重複定義相同變量數組
For循環,For循環裏面是父級做用域 for(let i=0;i<3;i++){ let i=’abc’; console.log(i) //打印出3次‘abc’(i在不一樣得做用域) }
const 定義常量 特性和let同樣
(1)const定義的定義必須有值,不能後賦值,不能修改
若是真的想將對象凍結,應該使用Object.freeze方法。瀏覽器
const foo = Object.freeze({}); // 常規模式時,下面一行不起做用; // 嚴格模式時,該行會報錯 foo.prop = 123;
Let [a,b,c]=[2,3,4] 注意:左右倆邊,結構格式要保持一致 Json: var obj={ a:2, b:3 }; let {a,b}=obj; let {a:nsds,b}=obj;//將a起名字爲nsds let [a,b,c='暫無數據']=['aa','bb']; //能夠設置默認值
交換倆個數的位置數據結構
let a=9; let b=8; [a,b]=[b,a];
案例app
function show({a="1",b='2'}){ console.log(a,b) //給默認值 } show({});
注意:ES6 內部使用嚴格相等運算符(===),判斷一個位置是否有值。因此,只有當一個數組成員嚴格等於undefined,默認值纔會生效。函數
let [x = 1] = [undefined]; x // 1 let [x = 1] = [null]; x // null
(1)優勢:隨意換行this
格式:${name}
code
let name='abc'; let age=18; let str=`這我的名字:${name},年齡:${age}`; console.log(str)
(2)字符串查找對象
str.indexOf(要找的東西); //返回索引(位置),沒有找到返回-1
str.includes(要找的東西); //返回值 true/false
判斷瀏覽器:navigator.userAgent.includes('chrome')
檢測字符串以誰開頭:str.startsWith(檢測東西)
檢測字符串以誰結尾:str.endsWith(檢測東西)
重複字符串:str.repeat(3) 重複3次
字符串填充:str.padStart(整個字符串長度,填充東西) //往前填充
str.padEnd(str.length+str1.Length,填充東西) //日後填充索引
1.函數默認參數
function show({a="1",b='2'}={}){ console.log(a,b) //函數的特性 } show()
2.函數參數默認已經定義,不能再使用let,const聲明:
function show(a=18){ Let a=12; //錯誤 console.log(a) } show()
3.擴展運算符,reset運算符... (展開/收起 數組)
let arr=['apple','banana','orage'] console.log(...arr) //apple banana orage function show(a,b,...c){ console.log(a,b)//1 2 console.log(c)//[3,4,5,6] } show(1,2,3,4,5,6)
4.箭頭函數=>
Let show()=>a // 至關於return a
A.this問題,定義函數所在的對象,不在運行時所在的對象
B.箭頭函數裏沒有arguments,用‘...’
C.箭頭函數不能用於構造函數
1.Arr.forEach()//代替普通for
Arr.forEach(循環回調函數,this指向誰)
let arr=[1,2,3,4,5,6]; arr.forEach(function(val,index,arr){ console.log(this) // this指123 },123)
2.Arr.map()
正常狀況下配合return,返回一個新的數組。若沒有return至關於forEach()
從新整理數據結構:
3.Arr.filter() :
過濾,過濾一貫不合適「元素」,若是回調函數返回的時true,則留下 [{title:’aaa’}]->[{t:’aaa’}]
4.Arr.some()
相似查找,數組裏面某一個元素符合條件,返回true;
5.Arr.every()
數組裏面全部的元素都要符合條件,才返回true
6.Arr.reduce() 2**3求冪
從左往右求數組的和,階層
7.Arr.reduceRight() //從右往左
for...of循環
默認循環的是value
arr.key() 數組下標
Arr.entries() 數組的某一項
Array.from()
做用:把類數組(獲取一組元素,arguments...)對象轉成數組
只要有length就靠譜
Array.of()
把一組值,轉成數組
Array.find()
查找,找出第一個符合條件的數組成員,若是沒有找到,返回undefined
Array.findIndex()
找的是位置,沒找到返回-1
Array.fill()填充
Array.fill(填充的東西 開始位置,結束位置)