今天完成的事情:深度思考问题;新增页要实现,查看、编辑、新增;了解到写法,明天写好
明天计划的事情:新增页写好
收获:
深度思考问题:
filter()、some()、map()、forEach()了解:
forEach():对数组中的每一项运行给定函数,这个方法没有返回值。
map():对数组中每一项运行给定函数,返回每次函数调用的结果组成的函数。
filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
path:表示 cookie 影响到的路径,匹配该路径才发送这个 cookie。
expires 和 maxAge:告诉浏览器 cookie时候过期,maxAge 是 cookie 多久后过期的相对时间。
不设置这两个选项时会产生 session cookie,session cookie 是 transient 的,当用户关闭浏览器时,就被清除。一般用来保存 session 的 session_id。
secure:当 secure值为true时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效
httpOnly:浏览器不允许脚本操作 document.cookie 去更改 cookie。一般情况下都应该设置这个为true,这样可以避免被 xss 攻击拿到 cookie。
相对于for(),JS数组自定义的数组迭代方式优点:
在实现相同功能的前提下,后者除了能够节省代码量外,在实现某些功能上的流程中存在很多有意思的优势,比如forEach相比普通的for循环的优势在于对稀疏数组的处理,会跳过数组中的空位。for+i在性能测试上是优越于后者,但是前提是,array的length要事先计算出来,而在处理非常大量的数据时候,后者的优势就显而易见了。
代码实战:
<script>
var arr = [1, 2, 3, 4, 5];
//every()检测数组中的每一项是否符合条件,如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测
var result = arr.every(function (item, index) {
return item > 6
})
console.log(arr);
console.log(result);
//some()检测数组中的某些项符合条件,如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
var result = arr.some(function (item, index) {
return item > 5;
})
console.log(arr);
console.log(result);
//filter()筛选出数组中符合的项,组成新的数组
var newArr = arr.filter(function (item, index) {
return item > 4
})
console.log(arr);
console.log(newArr);
// forEach()让数组的每一项做一件事,forEach不支持return
arr.forEach(function (item, index) {
console.log(item);
})
//map()让数组通过某种计算得到一个新的数组
var newArr = arr.map(function (item, index) {
return item * 2
})
console.log(arr);
console.log(newArr);
/*分裂*/
function total(n) {
var yellow = function (n) {
if (n === 0 || n === 1) {
return 0
}
return green(n - 1)
}
var green = function (n) {
if (n === 0) {
return 0
}
return white(n - 1)
}
var white = function (n) {
if (n === 0) {
return 1
}
return yellow(n - 1) + green(n - 1) + white(n - 1)
}
return yellow(n) + green(n) + white(n)
}
console.log(total(0));//1
console.log(total(1));//2
console.log(total(2));//4
console.log(total(3));//7
console.log(total(4));//13
</script>
评论