一 使用js——可以用atom写代码,使用浏览器运行
项目文件(文件分别保存,才能运行)
1,需要一个html,创建一个空白html,外部引入js
2,my.js ——保存所有的源代码,(import js)
3,test.js——所以的测试函数,
4,_ _ main() 调用所需要的函数,
5,调用 _ _ main(),保留函数统一的接口
***排查错误的时候,就可以一层一层的排查
二 如何写代码
1,根据需求,确定需要的结果()
例如:fe课5作业,把 n 的位数变成 width 这么长,并在右对齐,不足部分用 0 补足并返回
1)确定我们定义新的字符串,返回新的字符串
var zfill = function(n, width) {
var str = ""
return str
}
2)一步一步,按逻辑实现代码,确定正确,如果测试错误就log()确定问题点
var zfill = function(n, width) {
var str = String(n)
var len = str.length
if (len >= width) {
log(str)
return str
}
else {
var numzero = width - len
var zeros = ''
for(var i = 0; i < numzero; i++) {
zeros = zeros + '0'
}
str = zeros + str
log(str)
return str
}
}
3)优化代码,边改边测
第一次
var zfill = function(n, width) {
var str = String(n)
var len = str.length
if (len < width) {
var numzero = width - len
var zeros = ''
for(var i = 0; i < numzero; i++) {
zeros = zeros + '0'
}
str = zeros + str
//log(str)
}
return str
}
第二次
var zfill = function(n, width) {
var str = String(n)
var len = str.length
var numzero = width - len
var zeros = ''
if (numzero > 0) {
for(var i = 0; i < numzero; i++) {
zeros = zeros + '0'
}
}
str = zeros + str
return str
}
下一题,发现有重复代码,可以提出来封装,
var nchar = function(num, fillchar) {
var zeros = ''
for(var i = 0; i < num; i++) {
zeros = zeros + fillchar
}
//log("nchar", zeros)
return zeros
}
var rjust = function(s, width, fillchar=' ') {
var str = String(s)
var len = str.length
var numzero = width - len
var zeros = ''
if (numzero > 0) {
zeros = nchar(numzero, fillchar)
}
str = zeros + str
//log('rjust', str)
return str
}
对于封装的代码,一定要单独测试,以确定正确,
var test_nchar = function() {
ensure(nchar(5, "0") === "00000", 'nchar 测试 1')
ensure(nchar(2, "*") === "**", 'nchar 测试 2')
ensure(nchar(3, "1") === "111", 'nchar 测试 3')
ensure(nchar(3, " ") === " ", 'nchar 测试 3')
log("test nchar finished")
}
对于已经封装的代码,可能测试成功,
但是,在调用这个代码,还是出错的时候,就需要检查,封装好的代码,是否符合调用代码的所有情况,
如果不能,就需要继续优化封装好的代码