es6记录

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"}]

三、解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。因为undefinednull没法转为对象,因此对它们进行解构赋值,都会报错。

let { prop: x } = undefined; // TypeError
let { prop: y } = null; // TypeError

 3、

字符串对象共有4个方法,能够使用正则表达式:match()replace()search()split()

match() 返回

 

正则表达式  /i    忽略大小写

相关文章
相关标签/搜索