1.需要过渡动画的套路代码,即数值的变化,只需要找到开始量以及结束量即可
var start = 240; //开始量
var end = 0; //结束量
var change = end - start;//变化量
var t = 0;
var maxT = 30;
var timer = setInterval(function() {
t++;
if(t >= maxT) {
clearInterval(timer);
}
box.style.backgroundColor = "hsl("+ (change/maxT * t + start) +", 100%, 50%)";
}, 30);
2. 函数的形式 3种
a.一般函数
b.对象的方法
c.构造函数 new Date()
this的指向
a.一般函数全局对象window,在严格模式下,为undefined
b.对象的方法里调用的,this指向调用该方法的对象
c.构造函数里的this,指向创建new出来的实例
3. Date 内置的时间日期构造函数(电子表/倒计时)
var date = new Date().getTime();// 返回的是1970到现在的毫秒数,时间戳
date.getFullYear(); 年份
date.getMonth(); 月份,从0开始
date.getDate(); 日期
date.getDay(); 星期几
date.getHours();时
date.getMinutes();分
date.getSecondes();秒
4. string字符串,基本数据类型中的一种
方法是属于对象的,然而字符串也有方法?包装对象
var str = "hello world";
str.length 字符串长度
str[0] 获取第一个字符,跟str.chatAt(0)【无兼容性问题】相等
str.split("") 将字符串转换成数组
str.toUpperCase() 将字符串转换成大写
str.toLowerCase() 将字符串转换成小写
str.indexOf("s") 查找s[字符或字符串]在str中的位置,找到返回下标,找不到返回-1
str.substring(start, end) 字符串截取,不包括end下标的字符
[start, end)
str.substr(start, length) 不推荐使用,新版ecma抛弃掉
str.replace("a","A")
str.replace() 参数可以是正则表达式
str.match()
str.search()
str.trim() // 去掉首尾空格, es5新增字符串方法
5. 数组常用方法
var arr = [1,2,3,4];
arr.length; 可读可写
arr[0];
栈:先进后出,后进先出
队列:先进先出
a.在数组末尾插入元素
arr.push(item1, item2, item3...) 参数可以设置多个,返回的是数组的长度
b.删除数组里的最后一个元素
arr.pop() 返回数组最后一个元素
c.在数组的开头插入元素
arr.unshift()
d.在数组的开头删除元素
arr.shift()
e.复制数组中的某部分,不影响原数组
arr.slice(start, end) [start, end)返回一个新数组
f. 剪切/粘贴,对原数组产生影响
arr.splice(start, length) 返回的是原数组从start下标开始的length个元素组成的数组
arr.splice(start, 0, "a","b") 在数组start位置插入元素"a","b"
g. 排序
arr.sort() 按照Ascii排序 美国标准信息交换码
arr.sort(function(a, b) {return a - b;}) 按照数值大小比较
arr.sort(function(a, b) { return (Math.random() - 0.5 > 0) ? (a -b):(b - a) })
数组元素随机排列
h. 反转数组
arr.reverse();
es5 中新增的数组方法
arr.indexOf() //判断数组里是否存在某个元素,找到返回下标,找不到返回-1
arr.every()
arr.some()
arr.forEach()
arr.map()
arr.filter()
6. 按值传递 基本数据类型的赋值
按引用传递 复合数据类型的赋值
{} === {} false 指向的不是同一个对象,同一个对象的时候才相等
7. eval 将字符串转换成语句执行,不推荐使用,存在安全性以及性能问题
setInterval("clock()", 1000) 不推荐使用