这个系列记录之前学习JS基础的一些知识点和笔记,希望会对一些刚开始学习JavaScript的入门者有用,若有错误与不当之处欢迎指出与纠正!!!
七十一 运算符的优先级别
一元操作符:++、–、+、-
逻辑操作符
基本运算符
关系操作符
条件操作符
赋值运算符
逗号运算符
Var aa=0&&1;
Alert(aa);//0由于有假的,则&&运算符的结果为假,输出的则为0
Var bb=1&&0;
Alert(bb);//0
Var cc=1&&8;
Alert(cc);//8,两个都是真的,他会把后面的那个8输出出来,“与”运算符会一直验证到最后一个为真的结果,把这个结果输出出来
Var a=1&&3&&5;
Alert(a);//5
Var b=0&2&4;
Alert(b);//0
Var c=5&&0&&7;
Alert©;//0
Console.log(0||1);//1
Console.log(1||0);//1
Console.log(1||3);//1
Console.log(3||1);//3
“或”只有有一个结果为真就输出真,遇到真的结果就输出这个结果
优先级别:“与”》“或”》“非”
Var a=5 && 0 || 1;//1
Var b=4 || 0 && 8;//4
Var c=0 || 8 && 9;//9
Alert(a), alert(b), alert©;
优先级别:+-》“与”》“或”》“非”
Var a= 4 + 8 && 3;//3
Var b=0 && 7 + 1;//0
Var c=4 || 3 && 8-1;// 4
Alert(a), alert(b), alert©;
七十二 数组高级API
Instanceof 是一个关键字,判断A是否是B类型
布尔类类型值=A instanceof B;
var arr=[1,2,”hahaha”];//Array
console.log(typeof arr);//输出的是object,构造函数本质上也是对象(原型链 )
console.log(Arr instanceof Array);//true
Array.IsArray();HTML5中新增 判断是不是数组
布尔类型值= Array.IsArray(变量);调用者:Array 参数:变量(被检测值) 返回值:布尔类型
toString();把数组转换成字符串,每一项用逗号分隔输出
字符串=数组.toString();
valueof();返回数组对象本身
数组本身=数组.valueof();
join();根据每个字符把数组元素连起来变成字符串
字符串=数组.join(变量);
变量可以有可以没有,不写默认用逗号分隔,无缝连接用空字符串。
七十三 字符串
数组转换字符串用toString();或者与字符串拼接;直接加个+‘(空字符串)’
根据位置返回字符串
charAt 获取相应位置字符,参数:字符位置 charAt(index)index为索引下标(中英文都一样);如果参数index不在0与string.length之间,该方法将返回一个空字符
charCodeAt 获取相应位置字符编码(参数:字符位置)索引号
charAt()方法和charCodeAt()方法都用于选取字符串中某一位置上的单个字符
区别:charCodeAt()方法他并不返回指定位置上的字符本身,而是返回该字符在Unicode字符集中的编码值。常见的编码有很多,比如:big5 关闭313 gbk…
Unicode 为了解决传统的字符编码方案的局限而产生的;可以让我们知道我们按下了键盘上的哪个键
七十五 九宫格案例
讲个图片排成一个数组,数组的下标为index,index对列数cols取余结果为该图片所在的列数index%cols;index除以列数cols取整为该图片所在的行数parseInt(index/cols);
图片的排列:position:absolute; left:(宽度+margin-left、right)index%cols; top(高度+margin-top、bottom) parseInt(index/cols);
七十六 内置对象Date
getTime();时间戳,返回累计毫秒数,从1970/1/1午夜到现在一共经历了多少毫秒
七十七 简化日历、简化微博
七十八 定时器
在网页中,有很多效果都是自己运动的,比如:轮播图,获取验证码倒计时等
Window.setInterval(“执行的代码串”,间隔时间) / setInterval(“console.log(每隔一秒打印一次)”,1000)
Window.clearInterval(参数是setInterval返回的值);清除定时器
七十九 抢购倒计时
统一把时间转成毫秒(ms)进行计算,会更加精准
用将来的时间-现在的时间=剩下的时间
相同代码统一封装
自定义时间 var currentDate = new Date();//无参数则默认定义成现在的时间
var nextDate = new Date(‘2020/08/08 00:00:00 ’);自定义未来的时间,把未来时间当做参数传入Date()构造函数中;
如果想计算两个时间中间差了多少毫秒减掉就可以了,最好用时间戳转化成毫秒转出nextDate.getTime()-currentDate.getTime()
八十 把秒数转换成日期时间
注意:以下的单位都是用秒来计算的!second=parseInt(milliSecond / 1000);
//天数
Var d=pardeInt(second/3600/24);
//小时
Var h= parseInt(second/3600%24);
//分钟
//用总的小时数%24 不超过24小时
Var m= parseInt(second/60%60);
//秒数
Var s= second%60;
包装时间:function size(num){
Return num >= 10 ? num : ‘0’+num;
}
秒杀倒计时
八十一 经典时钟案例
其中的三根针的旋转中心点的位置一样,都在图片的正中心最好,这样旋转的时候就不会相对跑偏 //
通过定时器刷新一次旋转的角度,定时器的时间确定了刷新的密度,到了设定的时间则三根针视觉上运动一次,则旋转一次
八十二 定时器累加现象
box.onmouseover = function () {
//如果不设置清除定时器,则每次鼠标进去都会重启一个定时器,可能会导致生成几个定时器以致定的时间越来越快
time= setIntervsl(function(){ height +=1; },1000)
};
所以一般这种情况下为了防止定时器的累加,需要在回调函数里加上清除定时器的操作
box.onmouseover = function () {
clearInterval(time);//
time= setIntervsl(function(){ height +=1; },1000)
};