美文网首页
ES6相关总结

ES6相关总结

作者: 1024AAA | 来源:发表于2020-12-25 14:58 被阅读0次

    import ... from “...“和 import {...} from “...“和import * as from “.....“ 的区别:

    ES6语法常见有三种形式引入:

    import ... from “...“

    // A.js
    export default 20
    
    // B.js
    import A from './A'
    

    上面的代码生效的前提是,只有在A.js中有默认导出的export default语法时才会生效。 这种不使用{}来引用模块的情况下,import模块的命名是随意的,即如下三种引用命名都是正确的:

    //B.js 
    import A from './A' 
    import B from './A' 
    import Something from './A' 
    

    因为它总是会解析到A.js中默认的export default。

    import {...} from “...“

    //A.js
    export const A = 'myA'
    
    //B.js
    import { A } from './A'
    

    代码生效的前提是,只有在模块A.js中有如下命名导出为A的export name的代码,而且,在明确声明了命名导出后,那么在另一个js中使用{}引用模块时,import时的模块命名是有意义的,如下:

    // B.js
    import { A } from './A' // 正确,因为A.js中有命名为A的export
    import { B } from './A' // 错误!因为A.js中没有命名为B的export
    import { C } from './A' // 错误!因为A.js中没有命名为C的export
    
    export const sqrt = Math.sqrt;
    export function square(x) {
        return x * x;
    }
    export function diag(x, y) {
        return sqrt(square(x) + square(y));
    }
    
    //------ main.js ------
    import { square, diag } from 'lib';             
    console.log(square(11)); // 121
    console.log(diag(4, 3)); // 5
    

    import * as from “.....“

    把一个文件中export 的所有变量,包装成一个对象。

    export const sqrt1 = Math.sqrt;
    export const sqrt2= Math.sqrt;
    
    import * as sqrtobj from "....."
    sqrtobj.sqrt1
    sqrtobj.sqrt2
    

    相关文章

      网友评论

          本文标题:ES6相关总结

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