0
点赞
收藏
分享

微信扫一扫

ES6新特性(一)

芒果六斤半 2022-05-01 阅读 48
javascript

目录

 ​一、🌖新的变量声明方式 let/const

 二、🌖箭头函数的使用

 三、🌖模板字符串 

 四、🌖展开运算符

 五、🌖class

 六、🌖import、export 


🟢一、新的变量声明方式 let/const

let 定义的变量不会被变量提升,const 定义的常量不能被修改,let 和 const 都是块级作用域

ES6新增了两个声明变量的关键字:let和const

他们声明的变量仅在let和const关键字所在的代码块内起作用,即在使用let和const的那一对大括号{}内起作用,也称块级作用域(ES6之前只有函数作用域和全局作用域)。

{
    let a = 20;
}

console.log(a);  // a is not defined

  const用来声明一个常量,声明时必须赋值,且一旦声明就不能改变。

🟢全局对象的属性:

ES6规定:var命令和function命令声明的全局变量依旧是全局对象的属性;let命令、const命令和class命令声明的全局变量不属于全局对象的属性。

var x = 10;
let y = 20;
window.x  // 10
window.y  // undefined

🟢 二、 箭头函数的使用

箭头函数内部没有arguments,也没有prototype属性,所以不能用new关键字调用箭头函数。

箭头函数特点:

  1. ⚡️如果参数只有一个,可以省略小括号
  2. ⚡️如果不写return,可以不写大括号
  3. ⚡️没有arguments变量
  4. ⚡️不改变this指向
// es6 箭头函数写法,当函数直接被return时,可以省略函数体的括号
const fn = (a, b) => a + b;

 其次还有一个至关重要的一点,那就是箭头函数中,没有this。如果你在箭头函数中使用了this,那么该this一定就是外层的this。

🟢三、模板字符串 

模板字符串是为了解决使用+号拼接字符串的不便利而出现的 

使用 `` 将整个字符串包裹起来,而在其中使用 ${} 来包裹一个变量或者一个表达式。

// es6
const a = 20;
const b = 30;
const string = `${a}+${b}=${a+b}`;

 🟢四、 展开运算符

在ES6中用...来表示展开运算符,它可以将数组方法或者对象进行展开 

const arr1 = [1, 2, 3];
const arr2 = [...arr1, 10, 20, 30];

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

🟢 五、class

ES6为我们创建对象提供了新的语法糖,这就是Class语法class 的本质依然是一个函数 

// ES6
class Person {
  constructor(name, age) {  // 构造函数
    this.name = name;
    this.age = age;
  }

  getName() {  // 原型方法
    return this.name
  }
}

 constructor是创建类必须的方法,当使用new调用类创建实例时,将自动执行该方法,该方法和构造函数类似,默认返回this对象。实例的方法和属性都定义在constructor内部。相当于构造函数的this方式。

🟢 六、import、export 

import导入模块、export导出模块 

一个模块就是一个独立的文件。 

// 全部导入
import people from './example'
 
// 将整个模块当作单一对象进行导入,该模块的所有导出都会作为对象的属性存在
import * as example from "./example.js"
console.log(example.name)
console.log(example.getName())
 
// 导入部分,引入非 default 时,使用花括号
import {name, age} from './example'
 
 
// 导出默认, 有且只有一个默认
export default App
 
// 部分导出
export class App extend Component {};
举报

相关推荐

0 条评论