1.同步异步
同步:在做一件事的时候,如果这件事没有做完,后面的代码只能等待
for alert是同步
异步:在做一件事的时候,如果这件事需要等待,先去执行后面的代码,等时间到了再回来执行代码
定时器 ajax promise 事件绑定都是异步
2.小鸟起飞
2.1开始飞
需求:点击开始飞按钮 小鸟往右飞,飞到1000px的位置停止
问题1:点击开始起飞 越点小鸟飞的越快
分析:定时器累加的问题
解决:每次声明定时器之前 先清除原先的定时器
建议:但凡是牵扯到元素移动的 建议使用定义偏移量(left right bottom top);
2.2来回飞
需求:点击凯旋按钮,小鸟往回飞
问题2:点击凯旋的时候,越点小鸟飞的越快
分析:定时器累加的问题
解决:在每次声明定时器的时候,都将原先的定时器清除
2.3小鸟来回飞基础封装
封装的步骤
1.声明一个函数 把主要代码放入到函数中
2.找函数中可变的量作为参数 代入到函数中
3.调用
2.4小鸟来回飞解决目标值
问题3:点击开始飞 走的是判断条件1 凯旋飞 走的是判断条件2
解决:开始飞 step >0 走开始飞的判断条件 凯旋飞 step<0 走结束飞的条件
2.5小鸟来回飞完善
问题4:无论是开始飞还是结束飞 不考虑step的正负数问题
分析:
开始飞
当前left值(current) 目标值(target)
0 < 1000 +step
凯旋飞
当前left值(current) 目标值(target)
1000 > 0 -step
条件:current < target ? +step :-step
2.6将运动函数封装到公共js文件
@author:朱银娟
@作用:运动函数封装
@params:elem 标签
@params:attr 样式名 string类型
@params:step 步长 number类型
@params:target 目标值 number类型
3.js的对象
对象: 在JS中万物皆对象,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。
本地对象「内部对象」:JS中的内部对象包括Array、Boolean、Date、Function、Global、 Math、Number、Object、RegExp、String,Error对象, 其中Global和Math这两个对象又被称为“内置对象”,这两个对象在脚本程序初始化时被创建,不必实例化这两个对象。
宿主对象:宿主对象就是执行JS脚本的环境提供的对象,就是浏览器提供的对象,如window和document
自定义对象
api
API,全称Application Programming Interface,即应用程序编程接口。说白了就是函数,但是这些函数都是封装好的,固定功能的,可以直接调用实现功能的。 例如遥控器,不同的按键不同的功能,都是提前定义好的
4.Math对象
Math对象和Global对象不需要创建就可以使用
4.1取整
- parseInt() 强制转为Number类型 从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始就不能转换,结果则是NaN 结果取整(直接舍弃小数)
- Math.floor() 向下取整 舍弃小数部分
- Math.ceil() 向上取整 有小数就进位
- Math.round() 四舍五入
4.2数学方法
- Math.max(数值1,数值2,数值3......) 找序列中最大的值
- Math.min(数值1,数值2,数值3......) 找序列中最小的值
- Math.abs() 取绝对值
- Math.sqrt() 开根号
- Math.pow(基数,次方幂)