模塊開發(fā)流程
模塊開發(fā)流程.png
模塊的定義
模塊的定義
實現(xiàn)命令行計算器
首先要實現(xiàn)命令行計算器,需要三步:1叨襟、接收參數(shù),2幔荒、分析參數(shù)糊闽,3、進(jìn)行計算
1爹梁、接收參數(shù)
//process.argv:當(dāng)前進(jìn)程的命令行參數(shù)數(shù)組右犹。
const args = process.argv.slice(2);//['node執(zhí)行程序所在路徑','當(dāng)前腳本所在路徑'姚垃,..]
用戶在輸入的時候參數(shù)之間要用空格分開念链,不然會當(dāng)成一個參數(shù)處理
2、分析參數(shù)
if (args.length !== 3) {
console.log('參數(shù)不合法');
throw new Error('參數(shù)不合法')
}
let parameter1 = args[0];
let operator = args[1];
let parameter2 = args[2];
3积糯、進(jìn)行計算
//let result = eval(`${parameter1} ${operator} ${parameter2}`);
let result;
switch (operator) {
case '+':
result = parseFloat(parameter1) + parseFloat(parameter2);
break;
case '-':
result = parseFloat(parameter1) - parseFloat(parameter2);
break;
case '*':
result = parseFloat(parameter1) * parseFloat(parameter2);
break;
case '/':
result = parseFloat(parameter1) / parseFloat(parameter2);
break;
default:
throw new Error("不支持的運(yùn)算符")
}
console.log(result);
在進(jìn)行計算的時候掂墓,第一種使用eval()
這種方式,這種存在弊端看成,所以使用switch case
這種方式.
用switch case
會顯得復(fù)雜君编,我們現(xiàn)在把它抽象成一個模塊,新建一個calculator.js
文件川慌,
/**
* Created by 黃森 on 2017/6/4.
*/
function convert(input) {
return parseFloat(input);
}
function add(a, b) {
return convert(a) + convert(b)
}
function sub(a, b) {
return convert(a) - convert(b)
}
function mutiply(a, b) {
return convert(a) * convert(b)
}
function divide(a, b) {
return convert(a) / convert(b)
}
//es6自動屬性
module.exports={add,sub,mutiply,divide};
接下來只需要在計算那一步用require
引入calculator.js
文件即可吃嘿,
//3 進(jìn)行運(yùn)算
const calc = require('./module/calculator');
let result;
switch (operator) {
case '+':
result = calc.add(parameter1,parameter2);
break;
case '-':
result = calc.sub(parameter1,parameter2);;
break;
case '*':
result = calc.mutiply(parameter1,parameter2);;
break;
case '/':
result = calc.divide(parameter1,parameter2);;
break;
default:
throw new Error("不支持的運(yùn)算符")
}
console.log(result);
這樣就可以實現(xiàn)一個模塊化的代碼;這種也就是模塊分類里面的文件模塊梦重,模塊可分為文件模塊(自己定義的)兑燥、核心模塊(系統(tǒng)自帶如:(require('fs'))
、第三方模塊