zoukankan      html  css  js  c++  java
  • 22-内置对象

    一、Math对象

    1.获取π

    Math.PI
    

    2.最大值/最小值

    Math.max()
    Math.min()
    

    3.取整

    Math.floor():地板函数,向下取整        1.9999 => 1
    Math.round():四舍五入                        1.5 => 2
    Math.ceil():天花板函数,向上取整        1.000001 => 2
    

    4.生成一个随机数

    Math.random():生成[0,1)范围的随机数

    • 和取整搭配使用,生成一个n~m的随机数
    • Math.floor(Math.random()*m-n+1)+n

    5.绝对值

    Math.abs()

    6.次幂和平方

    Math.pow(num, power);//求num的power次方
    Math.sqrt(num);//对num开平方
    

    7.案例时间

    猜数字小游戏

            function getNum() {
                // 获取0 - 100的随机整数
                var num = Math.floor(Math.random() * 101);
                var a = prompt('请输入你猜的数字0~100');
                // 次数
                var i = 5;
                while (true) {
                    if (i > 1) {
                        if (a === num) {
                            // alert('恭喜您猜对啦,只用了' + 5 - i + '次,正确数字是' + num + '');
                            alert(`恭喜您猜对啦,只用了${5 - i}次,正确数字是${num}`);
                            break;
                        } else if (a > num) {
                            // 猜错了就减一次机会
                            a = prompt(`${a}太大了,您还有${--i}次机会`);
    
                        } else if (a < num) {
                            a = prompt(`${a}太小了,您还有${--i}次机会`);
                        }
                    } else {
                        alert('次数超过,游戏失败');
                        break;
                    }
                }
            }
            getNum();
        </script>
    

    随机颜色

        <script>
            // 获取一个随机rgba颜色和十六进制
            //取值0-255
            function getColor() {
                var r = Math.floor(Math.random() * 256);
                var g = Math.floor(Math.random() * 256);
                var b = Math.floor(Math.random() * 256);
                var a = Math.floor(Math.random() * 10) / 10;
                // return 'rgb(' + r + ',' + g + ',' + b + ')';
                return `rgba(${r},${g},${b},${a})`
            }
            console.log(getColor());
    
            var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
            var str = '#';
            function getColor2() {
                // 六位数
                for (var i = 0; i < 6; i++) {
                    // 索引数 = 长度 - 1
                    str += arr[Math.floor(Math.random() * 16)];
                }
                return str;
            }
            console.log(getColor2());
        </script>
    

    二、date对象

    用日期对象的时候一定要先new出来

        <script>
            // js中提供一个对象专门用来处理时间日期  Date对象
            // Math对象是一个静态对象。就是使用的时候不需要new的对象
    
            //使用日期对象的时候一定要先new出来
            var date = new Date();    //date对象中存有日期相关的所有的数据
            console.log(date);//Fri Apr 24 2020 07:14:42 GMT+0800 (中国标准时间)
    
            console.log(date.toDateString());   //Fri Apr 24 2020
            console.log(date.toLocaleDateString());  //2020/4/24
            console.log(date.toTimeString());   //07:14:42 GMT+0800 (中国标准时间)
            console.log(date.toLocaleTimeString());  //上午7:14:42
    
        </script>
    
    getTime()  返回毫秒数和valueOf()结果一样
    getMilliseconds()  当地时间返回时间的毫秒
    getSeconds()  返回0-59
    getMinutes()  返回0-59
    getHours()   返回0-23
    getDay()     返回星期几 0周日   6周6
    getDate()    返回当前月的第几天,当月的几号
    getMonth()   返回月份,从0开始
    getFullYear()   返回4位的年份  如 2016
    
            var date = new Date();
    
            //获取毫秒数
            console.log(date.getTime());   //返回当前时间对应毫秒数 
    
            //获取毫秒
            console.log(date.getMilliseconds());  //当前日期中的毫秒数  1秒= 1000毫秒
    
            //获取当前时间的秒数
            console.log(date.getSeconds());
    
            //获取当前时间的分钟
            console.log(date.getMinutes());
    
            //获取当前的小时
            console.log(date.getHours());
    
    
            //获取日期(多少号)
            console.log(date.getDate());
    
            console.log(date.getDay());   //星期几  而且是从0开始的,一周的第一天是周日
    
    
            //获取当前的月份
            console.log(date.getMonth());  //月是从0开始算
    
    
            // 获取当前的年份   返回的是一个4位的年份
            console.log(date.getFullYear());
    

    4.案例

    封装格式化时间

      <script>
        //    补0
        let addZero = a => a < 10 ? '0' + a : a;
        //格式化时间
        let date = new Date();
        // 星期天是第一天
        let arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
        let y = date.getFullYear();
        let mon = date.getMonth() + 1;//月从0开始
        let d = date.getDate();
        let h = date.getHours();
        let min = date.getMinutes();
        let s = date.getSeconds();
        let w = date.getDay();
    
        console.log(`${y}-${addZero(mon)}-${addZero(d)}	${addZero(h)}:${addZero(min)}:${addZero(s)}	${arr[w]}`);
    
      </script>
    

    倒计时

      <script>
        let addZero = a => a < 10 ? '0' + a : a;
    
        let date = new Date();
    
        //倒计时的时间
        let date2 = new Date(2020, 11, 31);//设置的时候,月份要减1
    
        // 倒计时距离现在的秒
        let time = (date2 - date) / 1000;
    
        // 将秒转化成天,小时,分钟
        let d = Math.floor(time / 60 / 60 / 24);
        // 将不够天数的转为小时
        let h = Math.floor(time / 60 / 60 % 24);
        let m = Math.floor(time / 60 % 60);
        var s = Math.floor(time % 60);
    
        console.log(`距离2020-12-31还剩${addZero(d)}天${addZero(h)}时${addZero(m)}分${addZero(s)}秒`);
      </script>
    

    计算程序耗费时间

      <script>
        // 开始的时间戳
        let start = +new Date();
        //程序体
        for (let i = 0; i < 9999; i++) {
          console.log('小艾同学');
        }
        // 结束的时间戳
        let end = +new Date();
        // 耗费的毫秒
        let time = end - start;
        console.log(`耗时${time}毫秒`);
      </script>
    

    三、String对象

    String可以遍历,但不能根据索引修改内容

    • String的所有方法都不会修改原字符串

    1.indexOf()

    查询字符在字符串中的索引

        let str = '小艾6866同学666';
        console.log(str.indexOf('艾'));//1
        // 当字符串有多个该字符,只会返回第一个的索引
        console.log(str.indexOf(6));//2
        // 跟两个参数是,前一个是要查询的字符,后一个是start的索引
        console.log(str.indexOf(6, 6));//8
        // 当查询连续字符串时候,是将它作为一个整体查询,返回的第一个字符出现的索引
        console.log(str.indexOf(66));//4
        console.log(str.indexOf(9));//-1
    

    2.trim()

    去掉首尾的空格,用于搜索条

        let str2 = '   小 艾 同 学   '
        console.log(str2);//   小 艾 同 学   
        // 只会去除首尾空格,中间的不回会去
        console.log(str2.trim());//小 艾 同 学 
    

    3.大小写

        let str3 = 'abcdEFG'
        console.log(str3.toUpperCase());//ABCDEFG
        console.log(str3.toLowerCase());//abcdefg
    

    4.concat()字符串拼接

    console.log(str.concat(str2, str3));
    

    5.截取字符串

      <script>
        let str = 'abcdefg';
    
        // 一个参数:就是开始截取的索引start,从strat开始全部提取
        console.log(str.slice(2));//cdefg
        console.log(str.substring(2));//cdefg
        console.log(str.substr(2));//cdefg
    
        //二个参数:第一个参数是开始的索引strat,第二个是结束的索引end
        // 从start开始截取到end,取不到end
        console.log(str.slice(2, 4));//cd
        console.log(str.substring(2, 4));//cd
    
        //二个参数:第一个参数是开始的索引strat,第二个是截取的个数
        console.log(str.substr(2, 4));//cdef
    
        // substring不能跟负数
        console.log(str.substring(-1));//abcdefg
        // 跟负数表示从后到前截取多少个
        console.log(str.substr(-2));//fg
        console.log(str.slice(-3));//efg
    
        // 始终不会改变原字符串
        console.log(str); //abcdefg
      </script>
    

    6.replace()字符串替换

        // 前面是要把谁替换,后面是替换他的新字符,不限个数
        console.log(str.replace('d', 'DD'));//abcDDefg
    
        // 始终不会改变原字符串,需要重新赋值才行
        console.log(str); //abcdefg
    

    7.split()字符串切割

      <script>
        let str = 'a-b-c-d-e-f-g';
    
        // 参数是空字符串,代表将字符串中的每一项都分开到一个新的数组中
        console.log(str.split(''));//["a", "-", "b", "-", "c", "-", "d", "-", "e", "-", "f", "-", "g"]
        // 参数是符号,就是将字符串以该符号进行分割
        console.log(str.split('-'));//["a", "b", "c", "d", "e", "f", "g"]
        console.log(str);//不会改变原字符串//a-b-c-d-e-f-g
    
      </script>
    

    8.charAt()

        // 根据索引查找该位置的字符串
        console.log(str.charAt(2));//b
    

    四、基本包装类型

    只有Number、String、Blooean有基本包装类型,undefined和null没有

          var num = 123;
          var result = num.toString();
          // // 发生了三件事情
          // 1. 把简单类型转换成复杂类型:var s = new Number(num);
          // 2. 调用包装类型的toString方法:var result = s.toString();
          // 3. 销毁刚刚创建的复杂类型
    
  • 相关阅读:
    setTimeOut与循环闭包问题
    ES6----class用法
    JS------对象的继承方式
    JavaScript对象 -构建
    nodejs异步---Async
    mongdb位置索引
    mongodb 索引3
    mongod 索引2
    mongodb 索引1
    3 C++数据类型
  • 原文地址:https://www.cnblogs.com/xiaoaitongxue/p/12796858.html
Copyright © 2011-2022 走看看