ES6学习总结(一)

本文是关于ECMAScript 6.0(简称ES6)的学习总结,重点介绍新增的关键字let和const,以及解构赋值和字符串方法的使用。通过实例解析let如何避免变量提升,const如何声明常量,以及数组和对象的解构赋值技巧。同时,文章还涵盖了字符串的新方法如repeat、includes、startsWith、endsWith、padStart、padEnd、trim系列方法的用法。
摘要由CSDN通过智能技术生成

ES6简介

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。
ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。
在ES6中,我们解决了很多的代码重复的问题,开发者们可以使用更少的事件去实现更多的功能。

新增关键字

let

let声明的变量只在let命令所在的代码块内有效,它常常用于声明局部变量,在同一个作用域下,let不同于var,只能对变量声明一次,不能重复声明。
let不存在变量提升的问题,如果不了解什么是变量提升,下面有个小例子可以帮助理解变量提升。

console.log(a)//undefined
var a = 5;
console.log(b);//报错,b is not defined
let b = 5;

const

对于值类型,变量一旦声明便不能更改,同样不存在变量提升,作用域与let相同,都为块级作用域。并且常量声明时就需要赋值,不可以先声明再赋值,否则会报错。const虽然不能更改值类型的变量,但是引用类型的变量可以进行修改,在赋值时,建议变量名大写。

const PI = 3.14;
PI = 5.6;//报错

解构赋值

解构赋值是对赋值运算符的扩展,他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

数组模型的解构

1.基本解构

let [a,b,c] = [1,2,3];
console.log(a);//1
console.log(b);//2
console.log(c);//3

2.嵌套解构

let [a,[[b],c]] = [1,[[2],3]];
console.log(a);//1
console.log(b);//2
console.log(c);//3

3.忽略解构

let [a,,b] = [1,2,3];
console.log(a);//1
console.log(b);//3

4.不完全解构

let [a=1,b] = [] //a=1,b=undefined

5.剩余运算符

let [a,...b]  = [1,2,3];
console.log(a)//1
console.log(b)//[2,3]

6.字符串解构

let [a,b,c,d,e] = "hello";
//a = "h"
//b="e"
//c = "l"
//d = "l"
//e = "o"

7.解构默认值

let [a=2] = [undefined];//a=2
let [a=3,b=a] = []//a = 3,b = 3;
let [a=3,b=a] = [1]//a =1,b=1;
let [a= 3,b=a] = [1,2]//a = 1,b = 2;

对象模型的解构

对象模型进行解构时,不同于数组对象的有:解构符不是中括号而是大括号,对象的解构操作必须保持对象的key值相同。
1.基本解构

let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
// foo = 'aaa'
// bar = 'bbb'
 
let { baz : foo } = { baz : 'ddd' };
// foo = 'ddd'

2.可嵌套可忽略

let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, { y }] } = obj;
// x = 'hello'
// y = 'world'
let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, {  }] } = obj;
// x = 'hello'

3.不完全解构

let obj = {p: [{y: 'world'}] };
let {p: [{ y }, x ] } = obj;
// x = undefined
// y = 'world'

4.剩余运算符

let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {c: 30, d: 40}

5.解构默认值

let {a = 10, b = 5} = {a: 3};
// a = 3; b = 5;
let {a: aa = 10, b: bb = 5} = {a: 3};
// aa = 3; bb = 5;

新增的字符串方法

1.repeat()
repeat方法可以使字符串重复,在括号中赋值即可产生重复的字符串

let str = "我爱你";
str.repeat(100)//输出100次我爱你

2.includes()
includes方法既可以用在字符串的包含中,也可以检查一个数组是否包含元素,返回值为boolean值

let arr = [1,2,3,4];
console.log(arr.includes(2)//true
let str = "我爱你";
console.log(str.includes("爱"));//true

3.startsWith()/endsWith()
startsWith与endsWith分别是否以…开头,是否以…结尾,返回值为boolean值

let str = "我爱你";
console.log(str.starsWith("我"))//true
console.log(str.endsWith("你")//true

4.padStart()/padEnd()
这两种方法为填充方法,括号内传两个参数,第一个为字符串的长度,第二个为补齐所添加的字符,padStart为左补齐,padEnd为右补齐,注意,这个方法在字符串的参数

let str = "1";
console.log(str.padStart(2,"0");//01
console.log(str.padEnd(2,"0");//10

5.trim()/trimLeft()/trimRight()
trim方法可以去除空格,trim去除两端的空格,trimLeft去除左边的空格,trimRight去除右边的空格
这个方法不能去除字符串里面的空格,如果需要出去需要遍历字符串

let str = "  我爱 你  ";
console.log(str.trim());//我爱 你;
console.log(str.trimLeft());//我爱 你 (这里有空格)
console.log(str.trimRight());// 我爱 你(这里没有空格)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值