ES6基本語法1

2022-06-24 16:57:13 字數 3575 閱讀 9234

unicode編碼可以以變數形式存在

f\u006f = 'abc'

console.log(foo) //abc

base64轉碼:不適合非ascii碼的字元

應用場景:0-31的ascii無法列印出來,可以用base64轉碼;以文字格式傳輸二進位制資料

btoa(string) 任意值轉換為base64編碼

atob() base64編碼轉回原來的值

string.fromcodepoint():用於從unicode碼點返回對應字元,可以識別0xffff的字元

str = "hello"

str.length

str.charat(0) //返回對應索引位置上的字元

str.charcodeat(0) //返回對應索引位置上字元的碼點

str.repeat(n) //將原字串重複n次,重複0次為空字串

str.padstart(補全後的字串長度, 用於補全的字串); //頭部補全

str.padend(); //尾部補全

e.g 'x'.padstart(3,'ab') //abx

原字串長度大於或等於補全後長度,則補全不生效,返回原字串

s = ' abc '

s.trim() //消除空格

s.trimstart() //消除頭部空格

s.trimend() //消除尾部空格

正規表示式:

[1]$

1、^為匹配輸入字串的開始位置

2、[0-9a-za-z]表示匹配所有數字,小寫字母,大寫字母

3、表示3到6的字元長度

4、¥表示結束符

var pattern = new regexp("x") //建立物件

test() //檢索字串中的指定值,返回true/false

pattern.test("wdx") //true

exec() //檢索字串中的指定值,返回該元素,如果沒有發現匹配,則返回null

compile() //修改檢索值

let 宣告的變數只在 let 命令所在的**塊 {} 內有效,在 {} 之外不能訪問。

在相同的作用域或塊級作用域中,不能使用 let 關鍵字來重置 let 關鍵字宣告的變數

const 宣告乙個唯讀的常量,一旦宣告,常量的值就不能改變。

const本質:const 定義的變數並非常量,並非不可變,它定義了乙個常量引用乙個值,只是不可以對它進行重新賦值。

在相同的作用域或塊級作用域中,不能使用 const 關鍵字來重置 const 關鍵字宣告的變數

var 關鍵字定義的變數可以在使用後宣告,也就是變數可以先使用再宣告

const 、let關鍵字定義的變數則不可以在使用後宣告,也就是變數需要先宣告再使用。

const、let都具備塊級作用域的特性

unshift()方法,在陣列頭部新增乙個或多個元素,返回新陣列長度

push()方法,在陣列尾部新增乙個或多個元素,返回新陣列長度

setvar a = new set([1,2,3])

array.from(a) 可以將set a 轉換為陣列

[...a] 就是將 set 轉換成 array

set.has(x) 是 set 中的乙個方法。即判斷當前 set 中是否含有 x,如果有返回 true,沒有返回 false。

a.size //返回set的長度 3

set.add(x)新增某個值,返回set本身

set.delete(x)刪除某個值,返回true/false

set.clear()清除所有成員,無返回值

set的四個遍歷方法:

set.keys() //返回鍵名

set.values() //返回鍵值

set.entries() //返回鍵值對

set.foreach() //使用**函式遍歷每個成員

foreach() 方法用於呼叫陣列的每個元素,並將元素傳遞給**函式。

weakset

其成員只能是物件;垃圾**機制不考慮其對該物件的引用,可以接收陣列物件 如: var ws = new weakset([[1,2],[4,5]])

有三個方法:add();delete();has()

mapmap 和 object的區別

乙個 object 的鍵只能是字串或者 symbols,但乙個 map 的鍵可以是任意值

map 的鍵值對個數可以從 size 屬性獲取,而 object 的鍵值對個數只能手動計算

key = {}

key ! = = {}

key = function(){}

key !== function(){}

key = ['a']

key !== ['a']

var map = new map()

map.set(鍵名,鍵值) //設定鍵值對

map.set("foo","123")

map.set("foo",null) //使用map需手動清除,否則記憶體會堆積,使用迴圈時記憶體容易崩潰

map.get(鍵名) //獲取對應的鍵值

map.has(鍵名) //判斷map中是否有鍵名對應的值,返回true/false

weakmap

只接受物件(null除外)作為鍵名

weakmap鍵名指向的物件,不計入垃圾**機制

weakmap和map的區別:沒有遍歷操作,沒有size屬性,無法clear,只可用,set,get,has,delete

函式函式名是乙個指標

arguments:函式的隱式引數,是乙個類陣列物件,包含傳入引數中的所有引數,該物件還擁有乙個指標callee,指向擁有該引數物件的函式

e.g 求和函式sum()相當於arguments.cllee()

函式的屬性和方法:length //函式希望接收的引數個數 prototype //函式的原型鏈

this:函式呼叫方法不同,this會指向不同的物件

1、以函式的形式呼叫,this永遠是window

2、以方法的形式呼叫,this就是呼叫方法的那個物件

symbol

用於設定物件的屬性名

let sym = new symbol();

可用的兩種寫法:

1、let obj = {}

obj[sym] = "name"

2、obj =

可以通過object.getownpropertysymbols()方法返回指定物件的所有使用symbol的屬性名,返回值為乙個陣列,值為所有用作屬性名的symbol值

symbol設定的值時全域性唯一的,如果希望使用同乙個symbol值,可以使用symbol.for()方法

迭代器for in 迴圈只能獲得物件的鍵名,for of迴圈允許獲得物件的鍵值

具備iteration介面的資料結構如下:

array、map、set、string、typedarray、函式的arguments物件、nodelist物件

e.g 陣列迭代:

let arr = [1, 2, 3]

let iter = arrsymbol.iterator

iter.next()

0-9a-za-z ↩︎

es6 基本語法

es6規定暫時性死區和let const語句不出現變數提公升,主要是為了減少執行時錯誤,防止在變數宣告前就使用這個變數,從而導致意料之外的行為。這樣的錯誤在 es5 是很常見的,現在有了這種規定,避免此類錯誤就很容易了。總之,暫時性死區的本質就是,只要一進入當前作用域,所要使用的變數就已經存在了,但...

es6基本語法

1.es6基本語法 變數的宣告 let 限制作用域 塊 const 常量 唯讀不可更改 const pi 3.14156 console.log pi pi 3.14 console.log pi let a 1 var a for var i 0 i 10 i a 6 輸出10 直接跳轉到最大值 ...

ES6基本語法

學js 箭頭函式 es6中可以使用 作為函式表達形式,極簡風格,引數 函式體。1 不帶引數function 等價於 2 帶引數function a 等價於 a 乙個引數時可以不寫括號 等價於 a 如果函式裡只有一條語句,可以省略return和 3 帶引數且函式裡只有一條返回語句,可以省略return...