ES6

作者: 暖lily | 来源:发表于2020-05-14 16:59 被阅读0次

    首先ES6需要转为ES5才能兼容所有浏览器,项目要求兼容高的需要使用编译工具:babel编译一下。

    下载安装babel

    1.需要电脑安装有node环境(node中自带npm包管理器)
    2.执行下载命令(卸载命令npm uninstall babel-cli -g)
    npm install babel-cli -g
    3.在项目根目录下创建.babelrc文件
    {
    "presets":[],//=>编译时候需要依赖的语言解析包
    "plugins":[] //=>编译时候需要依赖的插件信息
    }
    4.安装依赖语言解析包(要在当前目录下打开doc窗口)
    执行
    npm install babel-preset-latest(最新发布的语言解析模板)
    npm install babel-preset-stage-2(进入草案,未发布语言解析模板)
    安装完成后会生成一个node_modules文件夹
    5.去配置文件中填写参数
    {
    "presets":[
    "latest"
    "stage-2"
    ],//=>编译时候需要依赖的语言解析包
    "plugins":[] //=>编译时候需要依赖的插件信息
    }

    使用babel编译命令

    babel es6文件夹名 -d es5文件夹名
    将es6文件夹里面的js(例如:es6/index.js)编译成es5文件夹中对应名称的文件(es5/index.js)
    实时编译的命令===> babel es6 -d es5 -w

    let(创建变量)和const(创建常量)

    (1)let和const不存在变量提升
    (2)Let不允许(同一作用域)重复声明,但是可以重新赋值
    (3)暂时性死区 :使用typeof检测没被声明过的变量es5返回undefined,es6中返回报错信息
    (4)es6存在块级作用域,es5中不存在块级作用域(块级作用域理解为私有作用域:有私有变量和作用域链的一些机制,用大括号包起来的大部分为块级作用域)

    Js中创建变量方式汇总

    ***Es5中存在:变量提升 重复声明
    Var(创建变量)
    function(创建函数)

    ***es6中不可以变量提升,不可重复声明,还存在块级作用域
    Let 创建变量
    const创建常量
    class 创建类
    import 模块导入的方式

    js中常见错误类型

    1.SyntaxError(语法错误):解析代码时发生的语法错误
    例如:Uncaught SyntaxError: Unexpected number

    2.ReferenceError(引用错误):
    <1>引用了一个不存在的变量
    例如: console.log(a);----->Uncaught ReferenceError: a is not defined
    <2>将变量赋值给一个无法被赋值的对象
    例如:console.log()= 1;------>Uncaught ReferenceError: Invalid left-hand side in assignment

    3.RangeError(范围错误):超出有效范围
    例如:var a= new Array(-1); ----> Uncaught RangeError: Invalid array length

    4.TypeError(类型错误)
    a.变量或参数不是预期类型,比如,对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。
    例如: var a= new 123;---->Uncaught TypeError: 123 is not a function
    b.调用对象不存在的方法
    例如:var a;a.aa();----> Uncaught TypeError: Cannot read property 'aa' of undefined

    5.URLError(URL错误)
    与url相关函数参数不正确,主要是encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。
    例如: decodeURI('%2')--->Uncaught URIError: URI malformed

    6.EvalError(eval错误)--->eval函数没有被正确执行

    相关文章

      网友评论

          本文标题:ES6

          本文链接:https://www.haomeiwen.com/subject/wiirnqtx.html