JavaScript模块导入方式

本文详细介绍了JavaScript的模块导入导出方式,包括Node.js中的基本方式和匿名方式,以及ES6中的default、named、起别名和组合方式。通过实例展示了各种导入导出的语法,便于理解和应用。

JavaScript模块导入方式

JavaScript支持本地js文件中的某个数据类型1导入到另一个js文件中的操作,其导入方式多样,语法有较大差异,故此写下此文以备未来查阅。

Node中的导入导出方式

此类导入方式借助module对象通过module.exports赋予js文件中某数据类型能够被导入的权限,通过require(<filename>)导入数据类型,这种导入方式主要在Node.js2中使用。每个运行在Node上的js文件都存在一个有导出属性的本地module对象。require(<filename>)赋予的变量名不必须与导出文件中的变量相同,原则上保持一致。

基本方式

导出文件 <1-airplane.js>

let Airplane = {};
Airplane.myAirplane = "StarJet";
module.exports = Airplane;

导入文件与模块文件位于同一目录

const Airplane = require('./1-airplane.js');
const displayAirplane=()=>{
  console.log(Airplane);
  console.log(Airplane.myAirplane);
}
displayAirplane();

匿名方式

此类导入方式依赖了JavaScript语言变量是引用的特性,直接在module.exports后定义数据类型。

导出文件 <2-airplane.js>

module.exports = {
  myAirplane:"CloudJet",
  displayAirplane:function(){
    return this.myAirplane;
  }
};

导入方式同上。

ES6中的导入导出方式

default 方式

此类导出方式利用了ES6中的特性,可读性、灵活性高,通过export default替换module.exports

导出文件<airplane.js>

function meetsSpeedRangeRequirements(maxSpeed, minSpeed,requiredSpeedRange){
  const range = maxSpeed - minSpeed;
  if (range>requiredSpeedRange){
    return true;
  }
  else return false;
}
export default meetsSpeedRangeRequirements;

导入文件(值得注意的是,此时导入方式中不存在.js后缀)

import meetsSpeedRangeRequirements from './airplane';

Named 方式

这种导入方式实现了多个数据类型的导入。此时导出与导入文件中数据类型的变量名必须相同。

  • 一次性导出或导入

    导出文件<airplane.js>

    let availableAirplanes=[
      {name:'AeroJet',
      fuelCapacity:800,
      maxSpeed:1200,
      minSpeed:300,
      availableStaff:['pilots', 'flightAttendants',    'engineers', 'medicalAssistance','sensorOperators']
      },
      {name:'SkyJet',
      fuelCapacity:500,
      maxSpeed:800,
      minSpeed:200,
      availableStaff:[
      'pilots','flightAttendants'
    ]}];
    let flightRequirements = {
    };
    function meetsSpeedRangeRequirements(maxSpeed, minSpeed,requiredSpeedRange){
    }
    function meetsStaffRequirements(availableStaff,requiredStaff){
    }
    export {availableAirplanes, flightRequirements,meetsStaffRequirements};
    

    导入文件

    import {availableAirplanes, flightRequirements,meetsStaffRequirements} from './airplane';
    
  • 逐个导出或导入

    导出文件<airplane.js>

    export let availableAirplanes=[
      {name:'AeroJet',
      fuelCapacity:800,
      maxSpeed:1200,
      minSpeed:300,
      availableStaff:['pilots', 'flightAttendants',    'engineers', 'medicalAssistance','sensorOperators']
      },
      {name:'SkyJet',
      fuelCapacity:500,
      maxSpeed:800,
      minSpeed:200,
      availableStaff:[
      'pilots','flightAttendants'
    ]}];
    

    导入方式同前一个。

起别名

此类导入方式基于named一次性导出或导入方式,通过as关键字给变量起别名。

导出文件<airplane.js>

export {availableAirplanes as aircrafts, flightRequirements as flightReqs,meetsStaffRequirements as meetsStaffReqs,meetsSpeedRangeRequirements as meetsSpeedRangeReqs};

导入方式

  1. 基本导入方式同前一个

  2. 起别名导入,参考导出方式

  3. 对整个导入模块起别名

    import * as Carte from './menu';
    Carte.chefsSpecial;
    Carte.isVeg();
    Carte.isLowSodium(); 
    

组合方式

default方式与named方式可以组合使用。

导出文件<airplane.js>

export let availableAirplanes=[
  {name:'AeroJet',
  fuelCapacity:800,
  maxSpeed:1200,
  minSpeed:300,
  availableStaff:['pilots', 'flightAttendants',    'engineers', 'medicalAssistance','sensorOperators']
  },
  {name:'SkyJet',
  fuelCapacity:500,
  maxSpeed:800,
  minSpeed:200,
  availableStaff:[
  'pilots','flightAttendants'
]}];
export let flightRequirements = {
};
function meetsSpeedRangeRequirements(maxSpeed, minSpeed,requiredSpeedRange){
}
export function meetsStaffRequirements(availableStaff,requiredStaff){
}
export default meetsSpeedRangeRequirements;

  1. 能够表示并操作值的类型叫做数据类型 ↩︎

  2. Node.js是一个开源的、跨平台的、后端JavaScript运行时环境,它在web浏览器之外执行JavaScript代码 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值