数字方法,计时器与倒计时器,同异步代码

161 阅读3分钟

数字方法

        //求随机数(0-1 不包含0,1)
        var num1 = parseInt(Math.random()*10) ; //0-10随机数
        console.log(num1);
        //四舍五入后取整
        var num2 = Math.round(6.8);
        console.log(num2);
        //四舍五入后删除小数点后的数字取整
        var num3 = Math.ceil(1.7);
        console.log(num3);
        //向下取整
        var num4 = Math.floor(4.8);
        console.log(num4);
        //绝对值
        var num5 = Math.abs(-2);
        console.log(num5);
        //平方根
        var num6 = Math.sqrt(16)
        console.log(num6);
        //幂
        var num7 = Math.pow(4,4);
        console.log(num7);
        //最大值
        var num8 = Math.max(100,3,400,200,300);
        console.log(num8);
        //最小值
        var num9 = Math.min(100,3,400,200,300);
        console.log(num9);
        //圆周率
        var num10 = Math.PI
        console.log(num10);

计时器

计时器 (setInterval)
         语法: setInterval(function(){每次执行定时器时要做的事}, 时间) 时间的单位是毫秒
         返回值: (时间ID) ---> 值取决于你当前的定时器是这个页面的第几个定时器, 返回值可以用于关闭定时器
         关闭定时器: clearInterval(时间ID)

计时器案例1

    // 计时器 计时到10停止
var count = 0;
var timer = setInterval(function(){
    count++;  //计时器执行一次count自增1
    console.log(count); //打印
    if(count == 10){  //count等于10 时计时器停止
        clearInterval(timer); //清除计时器
    }
},1000) // 计时器1s执行一次

计时器案例2

// 通过计时器3秒后打印Hello
    <p>点击按钮,在等待 3 秒后弹出 "Hello"。</p>
    <button onclick="myFunction()">点我</button>
    
     function myFunction() {   
       setTimeout(function () {  //倒计时器
            alert("Hello");
     }, 3000);  // 三秒
    }

倒计时器

倒计时器 (setTimeout)
         语法 setTimeout(function () {倒计时时间满足时, 要执行的一段代码}, 时间) 时间的单位是毫秒
         返回值: (时间ID) ---> 值取决于你当前的定时器是这个页面的第几个定时器, 返回值可以用于关闭定时器
         关闭倒计时器: clearTimeout(时间ID)

         关闭定时器: clearIntervalclearTimeout
             正常来说 两个方法可以混用, 不会出错, 
             但是根据语义来说 clearTimeout 用于关闭 setTimeout; clearInterval 用于关闭 setInterval

倒计时器案例

var timer1 =setTimeout(function(){
    count++;
    console.log(count);
    if(count == 5){  //count等于5 时倒计时时器停止
        console.log('我是倒计时');
        clearTimeout(timer1);
    }
},1000)
clearTimeout(timer1);  //清除倒计时

求违规数

// 将字符串 var str = 'dgusg666623777236666gdkc6666gyc90eg777vb'; 结构代码加工后 将字符串变成 'dgusg****23***23****gdkc****gyc90eg***vb'
var str = 'dgusg666623777236666gdkc6666gyc90eg777vb';
var arr = ['6666', '777'];  //将需要被替换的字符存为数组
for (var i = 0; i < arr.length; i++) { //通过循环拿到数组arr中每一个数据
    while (str.includes(arr[i])) {  // 判断数组字符串中是否有数组中的值
    str = str.replace(arr[i], '****');  //将数组中出现的数据替换为****
    }
}
console.log(str);

同步代码

单线程 即从第一行代码开始逐一运行  若上一行代码不执行 下一行代码绝不会执行

异步代码

代码会按照从上到下的顺序执行,但是会先把所有的同步任务先执行, 
等所有的同步任务执行完毕, 在执行异步任务
        console.log(1)              // 同步任务 1
        console.log(2)              // 同步任务 2
        setTimeout(function () {    // 异步任务 1
            console.log(3)
        }, 5000)
        console.log(4)              // 同步任务 3
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