tws实训笔记

7.10

  1. shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值
  2. 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
}
  1. 模板字符串``  ${ }
  2. let: js增加的块级作用域,和c中的局部变量特征类似
  3. ctrl+w :选中单词
  4. 计时
  5. toFixed(2),保留小数点后两位
  6. 创建数组 let arr = new Array();
    创建对象 let obj = new Object();
    若不进行初始化,在添加属性值的时候会报错(undefined);

7.11

  1. let arr = [1,2,3,4];
    arr.splice(index,length); 删除数组元素
  2. 别用i,j 做循环变量,容易出错!!
  3. 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();
  1. 多用for-of for-in循环
  2. 不要把array.length 写成 array[array.length],可以新建一个length=array.length,
    then array[length]
  3. 不像其他编程语言,js:5/2=2.5

7.12

  1. stringObject.split(separator,howmany),返回一个字符串数组
    split("")每个字符都会被分隔
  2. arrayObject.join(separator) ,返回一个字符串.该字符串是通过把数组中的每一个元素转换为字符串,然后把这些字符串连接起来生成的.
      separator: 可选,default用逗号(,)作为分隔符
  3. 对数组操作的函数:
    shift(),unshift(),pop(),push()
  4. 第一步:结构化
     第二步:计算,逻辑
     第三步:傻瓜式打印,打印不添加任何逻辑
    三步之间相互分离,不互相依赖.Code 是将一个数据结构转化成另一个数据结构的过程
  5. TDD CI
    写测试:given-when-then
    写代码:可测试性
     可读性:一个函数15行内
     可维护性:自动化测试网络
     可扩展性
     先写测试,再写实现

7.13

  1. jasmine
  2. 1==true 0==false
  3. Math对象方法
      abs()
    ceil(),floor(),round()
    max(),min()
    pow(),sqrt()
    random() 返回0-1之间的随机数
  4. expect()
    toEqual() 类似于deepcopy的比较,对比每一个属性
    toBe() === 判断两个实例是否是同一个内存块上的实例
  5. 对于高级类型Array & Object ==/=== 是没有区别的,均是判断他们是否指向同一个内存快上的Array/Object
  6. (1.00 === 1) 类型均是Number

7.14

  1. 面向对象:
    1)单一职责
    2)开闭原则:扩展开放,修改关闭
    3)替换原则:子类可以替换父类,但是父雷不能替换子类
    4)依赖倒置:
    5)接口隔离:

接口

  1. json

  2. ES6 class 内不能再定义属性,而是直接在constructor 里面初始化就好了,在函数中调用属性的时候用this.property调用.

  3. the maximum call stack size of Node.js: 11034

  4. js构造函数不重载

  5. 'null' is not a standard type.

  6. ES6 类

  7. 'use strict';

  8. js中没有私有成员,全是共有

  9. Array.indexOf() 查看是否包含字符,否则返回-1

7.17

  1. 扩展运算符(...)将一个数组扩展成参数序列

  2. console.log([1,[0,[2],3],'a'].toString());  // 1,0,2,3,a
    数组.toString()会对数组中每一个元素调用.toString()

  3. arrayObject.concat(array1,array2,array3...) 连接多个数组
      arrayObject.slice(start,end)   返回指定元素
      arrayObject.sort(cmp) cmp()函数另外定义 ,default为按字符串比较
      arrayObject.splice(start,howmany,(newarray/item1,item2,item3...))
    splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

  4. 对象的prototype属性使您有能力向对象添加属性和方法

  5. arrayObject.filter()
    arrayObject.map()
    arrayObject.reduce()
    arrayObject.some()判断数组中是否存在满足条件的元素,返回ture/false
    arrayObject.every()
    arrayObject.indexOf()

7.20

  1. bootstrap 栅格
  2. 链接一个外部样式表

7.24

  1. 页面文件全部载入 DOMContentLoaded
  2. event.preventDefault(); 阻止默认函数对事件进行处理
  3. addEventListener(){return false;} 切断责任链,阻止冒泡

网页页面制作

  1. 到bootstrap上寻找模板
  2. 代码不能实现功能:到网页debug,watch变量,找到问题所在,google解决办法
  3. jquery的使用

7.27

  1. redis 中get(key)如果不存在,返回值是null;

你可能感兴趣的:(tws实训笔记)