“黄焖鸡”作业简结

昨天上午完成黄焖鸡的作业内容,于此做个简单的总结。


过程回顾

在做这次作业之前,自己仍然是想当然的解决问题,不知道有字符串模板这个东西,没弄明白函数调用这个知识点(自己想当然的以为把函数放在下一个函数之间就算是调用了),还有就是对tasking分解没有经验,并没有达到完全穷尽以及互不干扰。

整个作业写了三遍程序,第一遍做了步骤分解,但是并没有穷尽,加上掌握的编程能力限制,快到最后的时候,出不来正确的结果加上一点小问题没有解决。(那个小问题就是在输出优惠菜品的时候,因为菜品之间要加逗号,然后使用的遍历拼接,最后一个菜品后面依然多了一个逗号,没有想到解决办法。)

后来请问了助教,助教让我搜了一下字符串模板,这个对于我最后的输出有很大的便利。对于那个小问题,助教说的是:最后多了一个逗号,你要思考细节,比如:这个逗号是不是特殊的,是不是在最后面,是不是可以想办法把它删掉,或者说在最后循环的时候加一个条件,改变它。

这番话其实就是对我面对问题的时候该怎么去思考有很大的启发,思考问题应该考虑的更全面,找到特殊的地方,然后再去解决,或许思路就会出来。

助教给了我一个启发,还有一个字符串模板。我放弃了第一个程序,因为那个继续改的话,要找问题,需要更加仔细的去修改,我想或许我的列表有问题,我决定放弃它。我重新做了一个分解,写了一个程序,让人庆幸的是我顺利地做出来了,但是有一个缺点,他就是一个大函数,但是确实是按文物列表来的,每一步该做什么,都有一个部分。

在此基础上,我开始了第三次编写,我把各自独立的部分写成了函数,最后出来结果了,但是我感觉到不对劲,当你感觉一件事情不对劲的时候,其实你就应该知道你犯错了。

我的错误是,没有弄清函数调用究竟是怎么回事,将函数直接拿过去放到另一个函数之中,这就是我自认为的函数调用。


知识点回顾

1.字符串模板的使用

模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以通过该函数来对模板字符串进行操作处理。在模版字符串内使用反引号(`)时,需要在它前面加转义符(\)。

举个栗子:let cd = ‘This ${x} cd!’
x = 'is a';输出‘cd’会得到‘This is a cd!’
另外x也可以是函数。

2.函数的调用

第一种:

module.exports = {
method: function() {},
otherMethod: function() {}
}

第二种:

列出要导出的函数:
module.exports = {
function1,
function2,
function3
}
然后在另一个文件中访问它们:
var myFunctions = require("./lib/file.js")
//然后可以通过调用以下命令调用每个函数:
myFunctions.function1
myFunctions.function2
myFunctions.function3

第三种:

函数之间的调用
module.exports = function(arg) {
if(arg instanceof String) {
return doStringThing.apply(this, arguments);
}else{
return doObjectThing.apply(this, arguments);
}
};

tasking 分解

这一点,保持两个原则,完全穷尽、各自独立!

你可能感兴趣的:(“黄焖鸡”作业简结)