day01
1、animate.css文件是一个动画库:放着很多很多的动画。
为了我们程序员方便,怕我们自己画的丑。
如何使用:
1、打开百度:搜索animate.css 得到网址
http:
https:
2、下载 - 你们不用做这个操作
3、引入此文件
4、挑选你喜欢的动画,把class放到那个元素上
5、并且要记得设置上animation-duration:3s; 执行时长
6、还需要根据不同的动画,设置不同的初始效果,才会更好看
2、滚动轮播:如果你会淡入淡出轮播,其实差不多,布局不同,动画方式不同
3、无缝轮播:
4、swiper插件:专门的一个轮播插件,提供了你HTML/CSS/JS,我们只需要复制。
1、打开百度:搜索swiper
2、选你自己喜欢的
day02
面向对象:是一个开发方式,更符合现实生活,所有的数据都包含在一个事物之中,一个方法调用多个方法联动
1、封装:3种
1、直接量:
var obj={
属性名:属性值,
...
方法名:function(){操作},
...
}
2、预定义构造函数:
var obj=new Object();
3、批量创建多个对象:自定义构造函数
1、创建构造函数
function 类名(name,age,hobby){
this.name=name
this.age=age
this.hobby=hobby
}
2、调用构造函数创建出对象:
var xx=new 类名("袍哥",18,"吹牛")
细节:
1、访问属性和方法
obj.属性名
obj.方法名()
2、可以随时随地添加新东西
obj.属性名=属性值
obj.方法名=function(){}
3、访问到不存在的属性名或方法名,返回的undefined
4、遍历出对象的所有东西,必须使用for in循环
for(var i in obj){
obj[i]
}
5、在对象的方法种,想要使用对象自己的属性必须写为:this.属性名
2、继承:
父对象的东西,子对象可以直接使用,代码重用,节约内存空间!从而提升网站的性能!
找原型对象(爸爸):
1、对象名.__proto__
2、构造函数名.prototype
找到原型对象,可以设置共有属性和【共有方法】
原型对象.属性名=属性值
原型对象.方法名=function(){}
day03
1、继承
1、判断自有和共有
if(obj.hasOwnProperty("属性名")){
}else{
if("属性名" in obj){
}else{
}
}
2、修改和删除自有和共有
自有:
修改:obj.属性名=新值;
删除:delete obj.属性名;
共有:
修改:obj.属性名=新值;
删除:delete obj.属性名;.
注意:操作一定要先找到原型对象
3、为一类人添加方法:为老IE的数组添加indexOf
if(Array.prototype.indexOf===undefined){
Array.prototype.indexOf=function(key,starti){
starti===undefined&&(starti=0);
for(var i=starti;i<this.length;i++){
if(this[i]==key){
return i
}
}
return -1;
}
}
4、判断x是不是数组:4种
1、判读x是不是继承自Array.prototype
Array.prototype.isPrototypeOf(x);
2、判断x是不是由Array这个构造函数创建的
x instanceof Array
3、ES5:Array.isArray(x);
4、多态:Object.prototype.toString.call/apply(x)==="[object Array]";
5、自定义继承:
两个对象之间设置继承:
子对象.__proto__=父对象
批量设置继承:
构造函数名.prototype=父对象
2、两链一包:
原型链:
每个对象都有一个叫做.__proto__的操作,可以一层一层的找到自己的原型,最顶层的叫做Object的原型,所以也称呼万物皆对象,形成的一条链式结构
作用:找属性和方法
作用域链:
是以函数的EC的scope chain属性为起点,经过AO,逐级引用,形成的一条链式结构
作用:带来了变量的使用规则,找变量
闭包:
希望保护一个可以反复使用的局部变量的一种此法结构
function outer(){
创建受保护的变量
return function(){
操作受保护的变量
return 结果;
}
}
var 内层函数=outer();
只用于:防抖节流:
1、elem.onmousemove
2、input.oninput
3、window.onresize