7.10
- shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值
- for in 是遍历键名,for of是遍历键值
"use strict";
let arr = ["a","b"];
for (let a in arr) {
console.log(a);//0,1
}
for (let a of arr) {
console.log(a);//a,b
}
- 模板字符串`` ${ }
- let: js增加的块级作用域,和c中的局部变量特征类似
- ctrl+w :选中单词
- 计时
- toFixed(2),保留小数点后两位
- 创建数组 let arr = new Array();
创建对象 let obj = new Object();
若不进行初始化,在添加属性值的时候会报错(undefined);
7.11
- let arr = [1,2,3,4];
arr.splice(index,length); 删除数组元素 - 别用i,j 做循环变量,容易出错!!
- deepCopy:
* array.slice(start,[end]) 该方法复制数组array中[start,end)所指定的元素,返回一个Array.
* 对象深拷贝
let deepCopy = function(source){
let result = {};
for(let key in source){
result[key] = typeof source[key]===object ? deepCopy(source[key]) : source[key];
}
return result;
}
let map = new Map(); map.set();map.get();map.have();
let set = new Set(); set.add();set.have();
- 多用for-of for-in循环
- 不要把array.length 写成 array[array.length],可以新建一个length=array.length,
then array[length] - 不像其他编程语言,js:5/2=2.5
7.12
- stringObject.split(separator,howmany),返回一个字符串数组
split("")每个字符都会被分隔 - arrayObject.join(separator) ,返回一个字符串.该字符串是通过把数组中的每一个元素转换为字符串,然后把这些字符串连接起来生成的.
separator: 可选,default用逗号(,)作为分隔符 - 对数组操作的函数:
shift(),unshift(),pop(),push() - 第一步:结构化
第二步:计算,逻辑
第三步:傻瓜式打印,打印不添加任何逻辑
三步之间相互分离,不互相依赖.Code 是将一个数据结构转化成另一个数据结构的过程 - TDD CI
写测试:given-when-then
写代码:可测试性
可读性:一个函数15行内
可维护性:自动化测试网络
可扩展性
先写测试,再写实现
7.13
- jasmine
- 1==true 0==false
- Math对象方法
abs()
ceil(),floor(),round()
max(),min()
pow(),sqrt()
random() 返回0-1之间的随机数 - expect()
toEqual() 类似于deepcopy的比较,对比每一个属性
toBe() === 判断两个实例是否是同一个内存块上的实例 - 对于高级类型Array & Object ==/=== 是没有区别的,均是判断他们是否指向同一个内存快上的Array/Object
- (1.00 === 1) 类型均是Number
7.14
- 类
- 面向对象:
1)单一职责
2)开闭原则:扩展开放,修改关闭
3)替换原则:子类可以替换父类,但是父雷不能替换子类
4)依赖倒置:
5)接口隔离:
接口
-
json
-
ES6 class 内不能再定义属性,而是直接在constructor 里面初始化就好了,在函数中调用属性的时候用this.property调用.
-
the maximum call stack size of Node.js: 11034
-
js构造函数不重载
-
'null' is not a standard type.
-
ES6 类
-
'use strict';
-
js中没有私有成员,全是共有
-
Array.indexOf() 查看是否包含字符,否则返回-1
7.17
-
扩展运算符(...)将一个数组扩展成参数序列
-
console.log([1,[0,[2],3],'a'].toString()); // 1,0,2,3,a
数组.toString()会对数组中每一个元素调用.toString() -
arrayObject.concat(array1,array2,array3...) 连接多个数组
arrayObject.slice(start,end) 返回指定元素
arrayObject.sort(cmp) cmp()函数另外定义 ,default为按字符串比较
arrayObject.splice(start,howmany,(newarray/item1,item2,item3...))
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。 -
对象的prototype属性使您有能力向对象添加属性和方法
-
arrayObject.filter()
arrayObject.map()
arrayObject.reduce()
arrayObject.some()判断数组中是否存在满足条件的元素,返回ture/false
arrayObject.every()
arrayObject.indexOf()
7.20
- bootstrap 栅格
- <link> 链接一个外部样式表
7.24
- 页面文件全部载入 DOMContentLoaded
- event.preventDefault(); 阻止默认函数对事件进行处理
- addEventListener(){return false;} 切断责任链,阻止冒泡
网页页面制作
- 到bootstrap上寻找模板
- 代码不能实现功能:到网页debug,watch变量,找到问题所在,google解决办法
- jquery的使用
7.27
- redis 中get(key)如果不存在,返回值是null;
网友评论