今天一月六号,目标Fe1-24看看能完成多少。加油!
Fe-3 Debug
- 不要慌
- log大法-print大法
- 代码是否执行
- 执行数据是什么样子
Fe-4-1 测试和自动测试
- 测试函数ensure 第一个condition给的是测试函数和期望的值,需要多组,全面测试.
- 第二个message如果函数不等于期望值,报错。
- 自己写的测试函数testSum,sum是正确的sum1是错误的。
-
错误函数会有消息
// 正确
// 求数组的和
var sum = function(array) {
// 先设置一个变量用来存 和
var s = 0
// 遍历数组
for(var i = 0; i < array.length; i++) {
// 用变量 n 保存元素值
var n = array[i]
// 累加到变量 s
s = s + n
}
// 循环结束, 现在 s 里面存的是数组中所有元素的和了
return s
}
// 错误
// 求数组的和
var sum1 = function(array) {
// 先设置一个变量用来存 和
var s = 0
// 遍历数组
for(var i = 0; i < array.length; i++) {
// 用变量 n 保存元素值
var n = array[i]
// 累加到变量 s
s = s - n
}
// 循环结束, 现在 s 里面存的是数组中所有元素的和了
return s
}
// 用于测试的套路, 照抄即可
var ensure = function(condition, message) {
if (!condition) {
console.log(message)
}
}
var testSum = function() {
var numbers = [1, 2, 3, 4]
var value = 10
ensure(value == sum1(numbers), 'sum 错误')
ensure(1 == sum1([1]), 'sum 1 错误')
}
var __main = function() {
testSum()
}
__main()
数组元素个数
arr=[1,2,3,4]
var a = arr.length
- a = 4
数组元素个数
arr = [1,2,3,4]
var b = arr.slice(1)
- b = [2,3,4]
// 作业 3
// 参数是一个只包含数字的 array
// 求 array 中所有数字的平均数
// 函数定义是
var av = function(array){
var num = 0;
var sum = 0;
for (var i = 0; i < array.length; i++) {
num++;
sum = sum + array[i];
}
var av = sum/num;
return av;
}
var average = function(array) {
var n = array.length
return sum(array) / n
}
Fe4-2 js语法
- break 跳出循环,不会被执行,break后面代码以及其他的所有循环都不会被执行。
- contine 是跳出这次循环,contine后面的代码就不执行了
对象概念
- objec 是一个非常重要的存储数据的类型,通过key来访问元素
- array 用数字下标来访问元素
- object 花括号定义,逗号隔开,成对出现,冒号隔开
var taoer = {
'name': 'gua',
'height': 169,
}
-
访问有两种一种中括号taoer[name],一种点语法taoer.name;
两种情况用不了点语法
- key有空格
- key存在变量里面:比如key是var k = ‘name’
- 访问不存在的key,会返回undefined
- object 无序
- 增 taoer[weight] = 80
- 删 delete taoer.weight
Fe-4-3 递归
‘