后端仔的React之路(一)

89 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

前言

作为一名顶级后端工程师,只会用后端语言进行开发是不够滴,也要掌握一门前端的开发语言。

在网上查阅了大多数资料后,我选择学习React来作为我的前端学习语言,或许是因为React的语法相对于Vue等其他语言更简单,没有很多的语法糖需要去熟记,只需了解JavaScirpt就能够很快上手。

不过在正式开始学习React之前,还需要了解一下TypeScript和ES6标准,那么下面就来学习一下。

ES6新特性

首先ES6全名是ECMAScript 6.0,就是JS的新一个版本和标准,引入了很多新特性,例如新的变量声明方式、类关键字等。下面就来了解一下常见的特性~

let和const

ES6添加了letconst这两种变量声明方式。

其中const关键字用来声明一个常量,声明时必须赋值,且不能被修改(类似于Java中的final关键字)。

varlet关键字的区别主要区分在作用域上,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关键字特性~