java script进阶(断更几天了因为自己事情比较多哈时间比较紧)整理了以下部分:

什么是ES6

ES6ECMAScript 6.0是简称,其实它在2015年6月就发布出来了,所以又称ES2015,目的是使JavaScript这一门语言可以来编写更加复杂的大型应用。

let 和 const

ES6中新增了letconst用于声明变量、常量。我们知道通过var关键字声明的变量都会在window对象上。而使用letconst关键字声明的变量、常量只局限在当前作用域内使用,且没有作用域提升。

let age = 18;
const num = 10;

数据解构

一个从数组或者对象中方便获取数据的方法(Destructuring)。

数组中的解构有基本解构过程、顺序解构、解构出数组、默认值。

const arr = [10, 20, 30];
const [item1, item2, item3] = arr;
console.log(item1, item2, item3); // 10 20 30

对象中的解构有基本解构过程、任意顺序、重命名、默认值。

const { name, age } = obj;
console.log(name); // _island
console.log(age); // 18

字符串模板

ES6中我们可以在字符串中使用变量和表达式。使得字符串和变量之间拼接起来的语法更加优雅。

const city ='Guangzhou'

// ES5中
console.log('I live in '+city) // I live in Guangzhou
// ES6中
console.log(`I live in ${city}`) // I live in Guangzhou

函数的默认参数

ES6中,我们可以给函数的参数定义一个默认值,当这个参数没有被传入时则使用这个默认参数。

我们先看看看在ES5中如何实现的函数默认值

function foo(name,age){
var name=name || '_island'
var age=age || 18
console.log('name is '+name);
console.log('age is '+age);
}

foo() // name is _island  age is 18
foo('abc',17)// name is abc  age is 17

而在ES6之后,我们直接在函数形参后面定义一个默认值即可,我们稍微修改下上面的例子。

function foo(name='_island',age=18){
  console.log('name is '+name);
  console.log('age is '+age);
}

foo() // name is _island  age is 18
foo('abc',17)// name is abc  age is 17

函数剩余参数

ES6中引用了rest parameter,可以将不定数量的参数放到一个数组中。在函数最后的一个参数放入...args,在函数体中args是一个数组。

function sum(a,b,c,...args){
  console.log(a,b,c);
  console.log('---args');
  console.log(args);
}

sum(1,2,3,4,5,6,7,8,9,10)
// 1 2 3
// ---args
// [
//   4, 5,  6, 7,
//   8, 9, 10
// ]

  • arguments区别
    • 剩余次数只包含没有对应实参,而arguments对象包含了传给函数的所有实参
    • rest参数是一个数组,而argument对象是伪数组
    • 剩余参数必须放在最后面

箭头函数

ES6中新增箭头函数,因为它的定义用的就箭头。我们看看它的用法。

// ES5
function foo() {}

// ES6
const foo = () => {};

当有参数和函数体时,箭头函数是这样子声明的

// ES5
function foo(m, n) {
  console.log(m + n);
}

// ES6
const foo = (m, n) => {
  console.log(m + n);
};

箭头函数的简写

// 函数体里只有一条函数时可以这样子写,并默认将这条语句返回(省略return)
const foo = (m, n) => console.log(m + n);

// 当只有一个参数时,()可以省略掉 ,多个参数不能省略
const foo = name=>console.log(name);

箭头函数注意事项

  • 箭头函数不能作为构造函数使用
  • 箭头函数没有原型
  • 箭头函数内没有arguments
  • 箭头函数不能使用yield关键字

关于箭头函数的指向问题

  • 箭头函数没有this,它的this是它的父级
  • this是在定义箭头函数时绑定的

Class关键字

关于class关键字,我在另外一篇文章中有详细介绍Class的用法和相关扩展知识点。

点击直达 JS进阶 | 详解ES6中的Class

数值的表示

ES6中支持了进制的字面量,需要在数字前面添加对应的标识符号。

const num1 = 100; // 十进制
const num2 = 0b100; // 二进制
const num3 = 00100; // 八进制
const num4 = 0x100; // 十六进制
console.log(num1, num2, num3, num4); // 100 4 64 256

字符串方法

ES6中字符串对象的新增方法

方法返回值说明
startsWith布尔值判断字符串是否以指定字符开头
endsWith布尔值判断字符串是否以指定字符结尾

startsWith

startsWith方法用于判断字符串是否以指定字符开头。

// 判断字符串开头是否为h
const ish = str.startsWith("h");
console.log(ish); // true

endsWith

endsWith方法用于判断字符串是否以指定字符结尾。

// 判断字符串结尾是否为d
const isd = str.endsWith("d");
console.log(isd); // true

最后

本文介绍了日常开发中ES6中常用的语法,关于ES6还有一些数据类型,将在下一篇文章与大家继续讲述。后续也会继续介绍ES7-12中的新语法。助大家在日常开发中更胜一筹!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值