Math对象(Math对象不能new!!!!)
- Math.PI 圆周率
- Math.abs() 求绝对值
- Math.round() 四舍五入
如果负数时, > 0.5 进一 <=0.5 舍去
console.log(Math.round(4.5)); //5 console.log(Math.round(4.4)); //4 console.log(Math.round(-4.5)); // -4 console.log(Math.round(-4.5000001)); // -5 console.log(Math.round(-4.4)); //-4 console.log(Math.round(-4.6)); //-5
Math.ceil() 向上取整
console.log(Math.ceil(4.1)); //5 console.log(Math.ceil(4.9)); //5 console.log(Math.ceil(-4.1)); //-4 console.log(Math.ceil(-4.9)); // -4
Math.floor() 向下取整
console.log(Math.floor(4.1)); //4 console.log(Math.floor(4.9)); //4 console.log(Math.floor(-4.1)); //-5 console.log(Math.floor(-4.9)); // -5
- Math.max() 最大值
- 求数组中最大值: Math.max.apply(null,数组) Math.max( ... 数组名)
- 求数组中最小值: Math.min.apply(null,数组) Math.min( ... 数组名)
var arr = [2,3,1,4,5,3,4]; console.log(Math.max(2,3,1,4,5,3,4)); console.log(Math.min(2,3,1,4,5,3,4)); 求数组的最大值和最小值 console.log(Math.max.apply(null,arr)); console.log(Math.min.apply(null,arr)); 方法二 console.log(Math.max(...arr)); console.log(Math.min(...arr));
- Math.pow(m,n) 求m的n次方
console.log(math.pow(2,32)); console.log(math.pow(2,64));
- Math.sqrt(n) 求n的开方
- Math.random() 随机数 0 <= n < 1
万能随机公式
Math.floor(Math.random() * (max - min + 1) + min) 推荐 Math.round(Math.random() * (max - min) + min)
取10以内
Math.floor((Math.random()*10)
取n以内
Math.floor((Math.random()*n)
求0~n的随机数
Math.floor((Math.random()(n+1)) Math.ceil((Math.random()n)
求1~n的随机数
Math.floor((Math.random()*n+1)
随机数封装函数
function random(min,max){ if(min > max){ var t = min; min = max; max = t; } return Math.floor(Math.random() * (max - min + 1) + min); }
instanceof :检测当前对象是否属于某一个类返回布尔值
计时器
- timer = setInterval(函数,毫秒数) : 间歇性计时器
- clearInterval(timer) : 取消计时器
- timer = setTimeout(函数,毫秒数) : 一次性计时器、延时器、定时器
- clearTimeout(timer);
Date对象
如何创建日期对象?
- var date = new Date();
- var date = new Date(2002,2,5); //0~11
- var date = new Date(2002,2,5,18,30,50); //0~11
- var date = new Date('2002-3-5'); //1~12
- var date = new Date('2002-3-5 18:30:50'); //1~12
- var date = new Date('2002/3/5'); //1~12
- var date = new Date('2002/3/5 18:30:50'); //1~12
如何获取日期对象中的信息?
- date.getFullYear() //年
- date.getMonth() //月 0~11
- date.getDate() //日
- date.getDay() //星期
- date.getHours() 时
- date.getMinutes() 分
- date.getSeconds() 秒
- date.getMilliseconds() 毫秒
- date.getTime() 时间戳 从1970年1月1日时整到现在的毫秒数.
如何设置日期对象中的信息?
- date.setFullYear() 年
- date.setMonth() 0~11
- date.setDate() 日
- date.setHours() 时
- date.setMinutes() 分
- date.setSeconds() 秒
- date.setMilliseconds() 毫秒
- date.setTime() 时间戳
如何以本地格式的字符串输出日期对象?
- date.toLocaleString() 本地格式的日期时间字符串
- date.toLocaleDateString() 本地格式的日期字符串
- date.toLocaleTimeString() 本地格式的时间字符串
简单的代码异步执行机制
同步:按步骤执行 遇到一条语句,当时就会执行的,就属于同步语句
异步:同时进行
- 计算机程序执行分为同步执行,和异步执行:
所谓的异步执行,是一种特殊的程序的执行方式,常见的异步程序有:
定时器(setInterval),延时器(setTimeou),各种事件的绑定(onclick......),ajax请求
异步程序的执行过程
- 从第一行代码开始执行
- 同步程序开始执行
- 遇到异步程序了,暂时不执行,将异步程序暂时存储在“异步池”中
- 所有的同步程序执行完毕
- 开始执行“异步池”中的异步程序
- 若有设定了时间的程序,就会先执行
- 到点了的程序
- 若有设定的时间是相同的程序,则依照书写顺序执行
setTimeout(function(){ console.log('我是异步执行的程序1'); } , 2000); setTimeout(function(){ console.log('我是异步执行的程序2'); } , 1000); console.log('我是同步执行的程序') //结果依次是: //我是同步执行的程序 //我是异步执行的程序2 //我是异步执行的程序1