變數宣告關鍵字
var:全域作用域和函式作用域,會變數提升
let:區域作用域,不會變數提升,不能重復宣告
const:值型別不能修改,宣告必須賦值 ,一般大寫
let與const 關鍵字
可以把let看成var,只是它定義的變數被限定在了特定范圍內才能使用,而離開這個范圍則無效,const則很直觀,用來定義常量,即無法被更改值的變數,
for (let i=0;i<2;i++)console.log(i);//輸出: 0,1
console.log(i);//輸出:undefined,嚴格模式下會報錯
ES6 中,const 宣告的常量類似于指標,它指向某個參考,也就是說這個「常量」并非一成不變的,如:
{
const ARR = [5,6];
ARR.push(7);
console.log(ARR); // [5,6,7]
ARR = 10; // TypeError
}
let與const關鍵字
解構
陣列
定義: 把陣列或物件決議為單獨變數
1. 基本格式var [a,b,c="default",...rest]=arr
2.逗號代表下一位
3. ...rest 剩余的所有(只能放在最后)
4.可以有默認值
5.交換變數[a,b]=[b,a]
物件
var {name,age,say="love you",...rest}=obj
物件解構沒有順序
自動決議陣列或物件中的值,比如若一個函式要回傳多個值,常規的做法是回傳一個物件,將每個值做為這個物件的屬性回傳,但在ES6中,利用解構這一特性,可以直接回傳一個陣列,然后陣列中的值會自動被決議到對應接收該值的變數中
var [x,y]=getVal(),//函式回傳值的解構
function getVal() {
return [ 1, 2 ];
}
console.log('x:'+x+', y:'+y);//輸出:x:1, y:2
[name,,age]=['wayou','male','secrect'];//陣列解構 長度為三 中間鍵值為空
console.log('name:'+name+', age:'+age);//輸出: name:wayou, age:secrect
...不定參
{
let a, b, rest;
[a, b, ...rest] = [1, 2,3,4,5,6];
console.log(a,b,rest);
// rest 值是 [3,4,5,6]
}
默認值
{
let a, b, c ;
[a, b, c=5] = [4, 8];
console.log(a, b, c);
// 沒有默認引數 c 是undefine
}
變數交換
{
let a = 1, b = 2 ;
[a, b]=[b, a]
console.log(a,b);
}
函式回傳
{
function f() { return [1, 2] }
let a,b;
[a,b]=f();
console.log(a,b);
}
{
function f() { return [1, 2, 3, 4]}
let a,b;
[a,,,b]=f();
console.log(a,b);
}
{
function f() { return [1, 2, 3, 4] }
let a,b;
[a,...b]=f();
console.log(a,b);
}
物件解構
//變數名必須和物件鍵名一致
{
let o = {p:42, q:true};
let {p,q} = o;
console.log(p,q);
}
{
let {a=10,b=5} = {a:3};
console.log(a,b);
}
字串
字串模板
`${js變數}`可以換行,可以加特殊符號
遍歷 for of
檢測
includes(sub)是否包含
startsWith(sub)以什么開頭
endsWith(sub)以什么結尾
去空白
tirm()去掉兩端空白
tirmLeft()去掉左邊空白
tirmRight()去掉右邊空白
重復
repeat(n)字串重復n次
填充
“22”.padStart(4,"0")
"0022"
.padEnd(次數,填充字串)
陣列高階方法
forEach遍歷
格式arr.forEach(function(item,index.self){})
item:當前遍歷的元素
index:當前元素的下標
self:當前陣列
map映射
arr.map{function(item,index,self){
//回傳一個,映射陣列
}}
filter過濾
arr.filter{function(item,index,self){
//回傳真,當前遍歷元素保留
//回傳假,當前變數的元素過濾掉
}}
reduce累計
arr.reduce{function(a,b){
//a是上一次回傳的結果
}}
some有一個
有一個回傳結果為true最終結果為true
every每一個
每個回傳結果為true最終結果為true
find查找元素
查找符合條件的元素
findindex查找下標
查找符合條件的元素下標
sort((a,b)=>a-b)排序
箭頭函式
//01 箭頭函式省略function
//02 =>左邊引數
//03 箭頭右邊 函式體 回傳值
//04 傳參0個或2個以上 引數加上括號
//05 如果函式體有多行需要加上{} 如果需要回傳值return
//06 如果回傳的是一個物件則用() 包裹物件({})
//07 箭頭函式this指向上一層作用域的this
函式
默認引數function fn(a=10,b=20){}
呼叫:擴展參 fn{...arr}
定義:不定參function(...args){}
物件
1.物件簡寫
變數和值簡寫
函式function簡寫
var name=“胡圖圖”
var obj={
name,
say(){alert(this.name)}
}
2.物件動態屬性
{[nick+“msg”]:"你好"}
類
面向物件基本特點:封裝;繼承;多型;介面
單詞:
extends繼承
constructor建構式
super 超類
static 靜態
定義類類方法
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
say(){
alert(“你好”)
}
}
實體化類
var p1=new Person()
類中的this
Person類中的this指向、當前類的實體(p1)
繼承
class Teach extends Person{
constructor(name,age,major){
super();
this.major=major;
}
}
模塊module
匯入
import{name,fun,Square} from './api.js'
import Square from './api.js'
import Sq from ''./api.js
別名as *代表所有
import * api from './api.js'
api.name;api.fun()
別名import Square,{name,fun as fn} from './api.js'
匯出
export{name,fun,Square}匯入多次
export default Square;默認只能匯出一次
set
定義:沒有重復元素的集合(陣列)
初始化:
var s1=new Set()
var s2=new Set([1,2,5])
添加:s1.add()
洗掉:s1.delete()
情況:s1.clear()
檢測:s1.has()
長度:s1.size
轉陣列:Array.from(s1)[...s1]
陣列去重:arr1=[...new Set(arr)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/319764.html
標籤:其他
上一篇:ES6中的常用知識點總結
下一篇:vue的全域事件總線
