JavaScript 基础(2)

获取时间对象

1
2
3
4
5
// 当前时间对象
var time = new Date()
// 创建指定时间
var time = new Date(2030, 11) // 至少2个参数,除了年之外每个数字自动进位
var time = new Date('2090/11/29 12/34/14') // 还可以传入:yyyy-mm-dd HH-MM-SS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var time = new Date()
var year = getFullYear() // 年
getMonth() // 月
getDate() // 日
getHours() // 时
getminutes() // 分
getSeconds() // 秒
getMilliseconds() //毫秒
getDay() // 星期几,number类型,0 是周日
// 时间戳
getTime()
//获取世界标准时间
getUTCFullyear()
...
getUTCmilliseconds()
1
2
3
4
5
6
7
var time = Date()
setFullyear() // 设置 年
setMonth() // 月
...
setMilliseconds()

setTime(时间戳)
1
2
3
4
5
// 获取时间差
var time1 = new Date()
var time2 = new Date(2010, 2, 13, 18, 30, 00)
var diffTime = time1.getTime() - time2.getTime() // 转换后可以取绝对值
// 换算:diffTime 对应对应倍率

获取随机数

1
2
3
4
5
6
7
8
9
10
11
12
13
// n ~ m 范围内取整数
var n = 10
var m = 20
var obj = {}
for (var i = 0; i<100000; i++){
var res = Math.round(Math.random() * (m - n + 1) + n)
if(obj[res]) {
obj[res]++
} else {
obj[res] = 1
}
}
console.log(obj)
1
2
3
4
5
// 随机颜色
// 表示方式:
1. rgb(255, 255, 255)
2. #FFFFFF
// 利用上面的随机数生成方法和toString()等方法生成随机颜色

定时器

  • 单线程:代码从上到下执行
  • 同步异步:
    1. 死循环后面的代码都不执行
    2. WebApi 的队列机制(单线程异步)
    3. 异步:不会立即执行的代码,放到队列里先不执行。
  • JS 的两个定时器
    1. setTimeout(函数,时间ms)

      时间到的时候,执行一遍函数在结束
    2. setInterval(函数,时间ms)

      每隔一段时间,执行一遍函数
    3. 定时器的返回值表示第几个定时器,不分类别;用来关闭定时器:clearTimeout(返回值)clearInterval(返回值)不分种类
      1
      2
      3
      4
      5
      6
      // 异步机制
      console.log('start')
      setTimeout(function(){
      console.log('setTimeout')
      })
      console.log('end')
      tips: setInterval(函数名(), 时间) '函数名()'表示写的时候就执行了,而'函数名'表示的是一个变量,存储着函数的地址

格式化时间