查询字符串 随机数 数字方法 了解异步代码 定时器和延时器
一.查询字符串(约定)
- 数字字符串'123456'
- 标签字符串''
- 查询字符串: 'key=value'
- 多个查询字符串: 'key=value; key1=value1; key2=value'
案例:
//模拟一个查询字符串
var str='name:张三;age:18;city:北京'
//需求将查询字符串转换为对象形式
var obj = {}
/*
分析: 1:拿到字符串中所有的key
2: 拿到字符串中所有key对应的 value
逻辑: 1: 将字符串分隔为key=value(分隔完有三个)
2: 拿到每一个key添加到对象中,并且给赋值为对应的value
*/
//方法一
var arr =str.split(';');
for(var i =0; i<arr.length; i++){
var newArr =arr[i].split('=')
var key =newArr[0]
var value= newArr[1]
obj[key]=value
}
console.log(obj);
//方法二
arr.forEach(function (item) {
var newArr = item.split('=')
// var key = newArr[0]
// var value = newArr[1]
// obj[key] = value
obj[newArr[0]] = newArr[1]
})
console.log(obj)
二.进制转换和保留小数
-
十进制转换为其他进制: toString()
-
其他进制转换为十进制: parseInt()
案例:
var arr =[1,2,3].map(parseInt); 解析:var arr =[1,2,3].map(parseInt); var arr=[1,2,3] arr.map(parseInt) console.log(arr); /* parseInt 第二个参数区间为2~36,填写小于2的或者大于36的,都会返回NaN; 如果第二个参数写的是0或者不写 它会默认将你的数字识别为十进制.然后转为十进制 parseInt(1,0) //是把数字1当成10进制转换为10进制 parseInt(2,1) //填写小于2或者大于36的,都会返回NaN parseInt(3,1) //是把数字3当成2进制转换为10进制/但是2进制只有0和1,所以会认为这个是NaN */保留小数
- 保留时采用四舍五入
- 返回的是字符串
三.数字的方法
数字方法的常用方法
-
random(随机数)
- 语法: Math.random()
- 作用: 得到一个0~1之间的随机数,包含0,不包含1
-
round(四舍五入取整)
- 语法:Math.round()
- 作用:将数据四舍五入取整
3.ceil(向上取整)
- 语法:Math.ceil()
- 作用:将数据向上取整
4.floor(向下取整)
- 语法:Math.floor()
- 作用:将数据向下取整
5.abs(取绝对值)
- 语法:Math.abs()
- 作用:取数据的绝对值
6.sqrt(求平方根)
- 语法:Math.sqrt()
- 作用:求平方根
7.pow(求基数的X次幂)
- 语法:Math.pow(基数,幂)
- 作用:求一个基数的 X 次幂
8.max(最大值)
- 语法:Math.max()
- 作用:求参数中的最大值
9.min(最小值)
- 语法:Math.min()
- 作用:求参数中的最小值
10.PI(求圆周率)
- 语法:Math.PI不加小括号
- 作用:求圆周率
四.定时器和延时器
1.定时器(setInterval)
- 语法: setInterval (function(){每次执行定时器要做的事},时间) 时间单位是毫秒
- 返回值:(时间ID)====取决于你当前的定时器是这个页面的第几个定时器,返回值可以关闭定时器
- 关闭定时器: clearInterval(时间ID)
2.延时器(seTimeout)
- 语法:setInterval (function(){倒计时时间满足时,要执行一段代码,时间}) 时间单位是毫秒
- 返回值:(时间ID)====取决于你当前的延时器是这个页面的第几个定时器,返回可以关闭延时器
- 关闭定时器: clearTimeout(时间ID)
关闭定时器: clearInterval和 clearTimeout
正常来说两个可以混用,不会出错,
但是根据语义来说clearTimeout 用于关闭 setTimeout; clearInterval 用于关闭 setInterval
五.了解异步代码
-
JS 的运行 是单线程的(执行代码从第一行开始,往下执行, 上一行不结束, 不会运行下一行代码)
-
JS 在运行的时候, 会按照从上到下的顺序执行代码, 但是会先把所有的同步任务先执行, 等所有的同步任务执行完毕, 在执行异步任务
案例:
console.log('start') // 同步任务 1
setTimeout(function () { // 异步任务 1
console.log('timeout_start') // y 同步任务 1
setTimeout(function () { // y 异步任务 1
console.log('QF666') // X 同步 任务 1
}, 0)
console.log('timeout_end') // y 同步任务 2
}, 0)
console.log('end') // 同步任务 2
/**
* 1. start
* 2. end
* 3. timeout_start
* 4. timeout_end
* 5. QF666
*/