3.5?es6
1、const正則表達式
一、凍結對象數組
const foo = Object.freeze({}); // 常規模式時,下面一行不起做用; // 嚴格模式時,該行會報錯 foo.prop = 123;
二、es6聲明變量的6種方法spa
var function let const class importcode
2、變量的解構賦值(數組,對象,字符串)對象
一、數組取值由次序決定blog
// 報錯 let [foo] = 1; let [foo] = false; let [foo] = NaN; let [foo] = undefined; let [foo] = null; let [foo] = {};
容許指定默認值。字符串
let [foo = true] = []; foo // true
注意,ES6 內部使用嚴格相等運算符(===
),判斷一個位置是否有值。因此,若是一個數組成員不嚴格等於undefined
,默認值是不會生效的。it
let [x = 1] = [undefined]; x // 1 let [x = 1] = [null]; x // null
二、對象取值由位置決定io
對象的解構賦值的內部機制,是先找到同名屬性,而後再賦給對應的變量。真正被賦值的是後者,而不是前者。
let { foo: baz } = { foo: "aaa", bar: "bbb" }; baz // "aaa" foo // error: foo is not defined
屬性:變量
p
是模式,不是變量,所以不會被賦值。
let obj = { p: [ 'Hello', { y: 'World' } ] }; let { p: [x, { y }] } = obj; x // "Hello" y // "World"
若是p
也要做爲變量賦值,能夠寫成下面這樣。
let obj = { p: [ 'Hello', { y: 'World' } ] }; let { p, p: [x, { y }] } = obj; x // "Hello" y // "World" p // ["Hello", {y: "World"}]
三、解構賦值的規則是,只要等號右邊的值不是對象或數組,就先將其轉爲對象。因爲undefined
和null
沒法轉爲對象,因此對它們進行解構賦值,都會報錯。
let { prop: x } = undefined; // TypeError let { prop: y } = null; // TypeError
3、
字符串對象共有4個方法,能夠使用正則表達式:match()
、replace()
、search()
和split()
。
match() 返回
正則表達式 /i 忽略大小寫