开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
前言
作为一名顶级后端工程师,只会用后端语言进行开发是不够滴,也要掌握一门前端的开发语言。
在网上查阅了大多数资料后,我选择学习React来作为我的前端学习语言,或许是因为React的语法相对于Vue等其他语言更简单,没有很多的语法糖需要去熟记,只需了解JavaScirpt就能够很快上手。
不过在正式开始学习React之前,还需要了解一下TypeScript和ES6标准,那么下面就来学习一下。
ES6新特性
首先ES6全名是ECMAScript 6.0,就是JS的新一个版本和标准,引入了很多新特性,例如新的变量声明方式、类关键字等。下面就来了解一下常见的特性~
let和const
ES6添加了let和const这两种变量声明方式。
其中const关键字用来声明一个常量,声明时必须赋值,且不能被修改(类似于Java中的final关键字)。
var和let关键字的区别主要区分在作用域上,var被视为函数作用域、let则被视为块作用域。当他们都处于全局作用域和函数作用域时,他们的作用几乎是一样的,他们的主要区别是在块作用域上,例如下面的代码:
function testLet(){
// i 对于for循环外的范围是不可见的(i is not defined)
for(let i = 1; i<10; i++){
// i只有在这里是可见的
}
// i 对于for循环外的范围是不可见的(i is not defined)
}
function testVar(){
// i 对于for循环外的范围是可见的
for(var i = 1;i<10; i++){
// i 在for 在整个函数体内都是可见的
}
// i 对于for循环外的范围是可见的
}
那么什么时候用这两个变量关键字呢?
- const用于不想值被改变时
- let用于想缩小变量作用域,降低变量污染等风险时
解构赋值
不要被它的名字所吓到,其就是能够针对数组和对象进行多个赋值操作,类似于Go中的赋值操作。
let [a,b,c] = [1,2,3];
console.log(a,b,c); //1,2,3
参数默认值
ES6支持对方法的入参参数添加默认值,可以减少我们的冗余判断代码。
function hello(name="Tom") {
console.log("Hello:",name) // Hello: Tom
}
箭头函数
ES6提供了一种更简洁的方法声明方式,使用参数=>函数体的方式就可以声明一个方法,类似于Java8所引入的Lambda一样。
当方法入参只有一个参数时,括号是可以省略,同时函数体如果只有一行语句时,大括号也可以省略,不过通常还是建议加上括号和大括号,以提升可阅读性。
var add = (i,j)=>i+j
console.log( add( 1, 4 ) ); // 5
import和export
ES6提供了import和export两个关键字来实现模块的导入和导出。
import ‘变量名’ from ‘路径’;
export {变量名};
导入路径可以是绝对路径、相对路径、模块名称等,同时也无需声明导入文件的后缀,浏览器会自动从配置中加载正确的文件。
使用export关键字时,可以同时导出多个变量,使用{}大括号进行包裹,当其他模块导入时,需要与导出的变量名一致,例如下面的例子:
// 导出name和age变量
let name = 'Tom', age = 18;
export {name, age};
// 导入student模块
import {name , age } from 'student';
如果我们想自定义导入变量名,则可以通过as关键字来进行重命名
import {name as tomName , age as tomAge} from 'student';
小结
今天大致了解了一下ES6的新特性,明天继续学习ES6的class关键字特性~