zoukankan      html  css  js  c++  java
  • JavaScript 中 module.exports 、 export 和 => (箭头函数)的用法

    module.exports 的用法

    module.exports 对象是由模块系统创建的。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容,module.exports 提供了暴露接口的方法。

    示例

    1、返回一个 JSON Object

    var app = {
    	name: 'app',
    	version: '1.0.0',
    	sayName: function(name){
    		console.log(this.name);
    	}
    }
    module.exports = app;
    
    let proxyObj = {};
    proxyObj["/"] = {
        ws:false, // 关闭 webSocket
        target: "http://localhost:8081", // 目标地址
        changeOrigin: true,
        pathRewrite: {
            '^/':''
        }
    }
    
    module.exports = {
        devServer:{
            host: "localhost",
            port: 8080,
            proxy: proxyObj
        }
    }
    

    export 的用法

    在 JavaScript ES6 中,export 与 export default 均可用于导出常量、函数、文件、模块等,你可以在其它文件或模块中通过 import+(常量 | 函数 | 文件 | 模块) 名的方式,将其导入,以便能够对其进行使用,但在一个文件或模块中,export、import 可以有多个,export default 仅有一个

    示例

    1、export

    // api.js
    export const postRequest = (url, params) => {
        return axios({
            method: "post",
            url: `${base}${url}`,
            data: params,
        })
    }
    
    export const putRequest = (url, params) => {
        return axios({
            method: "put",
            url: `${base}${url}`,
            data: params,
        })
    }
    
    export const getRequest = (url, params) => {
        return axios({
            method: "get",
            url: `${base}${url}`,
            data: params,
        })
    }
    
    export const deleteRequest = (url, params) => {
        return axios({
            method: "delete",
            url: `${base}${url}`,
            data: params,
        })
    }
    

    对应的导入方式,有花括号

    // main.js
    import {postRequest} from "./utils/api"
    import {putRequest} from "./utils/api"
    import {getRequest} from "./utils/api"
    import {deleteRequest} from "./utils/api"
    

    2、export default

    //demo1.js
    export default str = 'hello world'
    

    对应的导入方式,没有花括号

    //demo2.js
    import str from 'demo1' //导入的时候没有花括号
    

    箭头函数的用法

    ES6标准新增了一种新的函数:Arrow Function(箭头函数)。

    基础语法

    通常函数的定义方法

    var fn1 = function(a, b) {
        return a + b
    }
     
    function fn2(a, b) {
        return a + b
    }
    

    使用 ES6 箭头函数语法定义函数,将原函数的 “function” 关键字和函数名都删掉,并使用 “=>” 连接参数列表和函数体。

    var fn1 = (a, b) => {
        return a + b
    }
     
    (a, b) => {
        return a + b
    }
    

    当函数参数只有一个,括号可以省略;但是没有参数时,括号不可以省略。

    // 无参
    var fn1 = function() {}
    var fn1 = () => {}
     
    // 单个参数
    var fn2 = function(a) {}
    var fn2 = a => {}
     
    // 多个参数
    var fn3 = function(a, b) {}
    var fn3 = (a, b) => {}
     
    // 可变参数
    var fn4 = function(a, b, ...args) {}
    var fn4 = (a, b, ...args) => {}
    

    箭头函数有两种格式,一种只包含一个表达式,省略掉了 { ... } 和 return。还有一种可以包含多条语句,这时候就不能省略 { ... } 和 return

    () => return 'hello'
    (a, b) => a + b
    
    (a) => {
      a = a + 1
      return a
    }
    

    如果返回一个对象,需要特别注意,如果是单表达式要返回自定义对象,不写括号会报错,因为和函数体的 { ... } 有语法冲突。

    注意,用小括号包含大括号则是对象的定义,而非函数主体

    x => {key: x} // 报错
    x => ({key: x}) // 正确
    

    参考文章

    https://blog.csdn.net/zhanghow/article/details/86616378

    https://blog.csdn.net/zhou_xiao_cheng/article/details/52759632

    https://blog.csdn.net/qq_32614411/article/details/80897256

    每天学习一点点,每天进步一点点。

  • 相关阅读:
    1010 幂次方
    1316 丢瓶盖
    1182 数列分段2
    Mysql动态SQL语句标签
    知了CMS开发说明文档(ibeetl) 建站系统文档
    BeanUtils.populate()的用法
    如何将网页的title前面的图标替换成自己公司的图标
    HTTP、HTTPS常用的默认端口号
    项目的xml文件中经常使用的sql语句
    Invalid bound statement(not found): com.xxx.xxx.xxx.xxxMapper.save
  • 原文地址:https://www.cnblogs.com/youcoding/p/14564842.html
Copyright © 2011-2022 走看看