ES6

1、变量申明方式

变量申明关键字:let和const,抛弃var

let与const都是只在声明所在的块级作用域内有效。

let声明的变量可以改变,值和类型都可以改变,没有限制。

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值,但可以改变其属性。

理解:let地址可变,const申明的变量指针所指的地址是不能改变的

const a={
    a:1,
    b:"dddd"
};

a.a=5;
a.c=10;
console.log(a.a);
console.log("c",a.c);
delete a.a;
console.log(a);

//运行结果
5
c 10
{ b: 'dddd', c: 10 }

2、三点式运算符

展开运算符(...)

数组展开:

const arr1 = [1, 2, 3];
const arr2 = [...arr1, 10, 20, 30];
// 这样,arr2 就变成了[1, 2, 3, 10, 20, 30];

对象的展开:

// 这种方式在react中十分常用
const props = {
  size: 1,
  src: 'xxxx',
  mode: 'si'
}


const { size, ...others } = props;

console.log(others)
const obj1 = {
  a: 1,
  b: 2, 
  c: 3
}

const obj2 = {
  ...obj1,
  d: 4,
  e: 5,
  f: 6
}

// 结果类似于 const obj2 = Object.assign({}, obj1, {d: 4})

3、类对象Class

class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    return '(' + this.x + ', ' + this.y + ')';
  }
}
Point === Point.prototype.constructor // true

getter

get prop() {
    return 'getter';
}

setter

set prop(value) {
    console.log('setter: '+value);
}

 extends

继承

 

class NewObj extends Object{
  constructor(){
    super(...arguments);
  }
}
var o = new NewObj({attr: true});
o.attr === true  // false

 4、数组

arr.push() 从后面添加元素,返回值为添加完后的数组的长度

let arr = [1,2,3,4,5]
console.log(arr.push(5))   // 6
console.log(arr) // [1,2,3,4,5,5]

arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素

let arr = [1,2,3,4,5]
console.log(arr.pop())     // 5
console.log(arr)  //[1,2,3,4]

 arr.concat() 连接两个数组 返回值为连接后的新数组

let arr = [1,2,3,4,5]
console.log(arr.concat([1,2]))  // [1,2,3,4,5,1,2]
console.log(arr)   // [1,2,3,4,5]

 arr.forEach(value,index,array) 遍历数组,无return

let array = [1,2,3,4];
array.forEach((item, index, array) => {
  console.log(item);
});

 arr.map(value,index,array) 映射数组(遍历数组),有return 返回一个新数组

let array = [1, 2, 3, 4];
let temp = array.map((item, index, array) => {
  return item * 10;
});
console.log(temp);  //  [10, 20, 30, 40];
console.log(array);  // [1, 2, 3, 4]
// map 遍历数组, 会返回一个新数组, 不会改变原来数组里的内容
let temp2 = array.map(String);  // 把数组里的元素都转成字符串

arr.filter(value,index,array)过滤数组,返回一个满足要求的数组

let array = [1, 2, 3, 4];
let temp = array.filter((item, index, array) => {
  return item >  3;
});
console.log(temp);  // [4]
console.log(array);  // [1, 2, 3, 4]

arr.every(value,index,array) 依据判断条件,数组的元素是否全满足,若满足则返回ture

let array = [1, 2, 3, 4];
let bo = array.every((item, index, array) => {
  return item > 2;
});

 arr.some() 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture

let array = [1, 2, 3, 4];
let tmep = array.some((item, index, array) => {
  return item > 1;
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值