Math对象和Date对象

188 阅读6分钟

1、Math对象是一个数学对象,不是一个构造函数。

 2.1 向下取整数
var a = 2.1;
console.log(Math.floor(a)) // 2
 2.2 向上取整
var a = 3.1
console.log(Math.ceil(a)) // 4

2.3 四舍五入
console.log(Math.round(2.6))

    <script>        // 构造函数实例化对象是使用new的方式!!!         console.log(Math.PI); // 3.1415926...        // max        console.log(Math.max(1, 100, 20))        console.log(Math.max(-1, -100));        console.log(Math.max(1, 100, "你好"))        console.log(Math.max())        // min最小值        console.log(Math.min(10, 20, 1))    </script>

2、封装一个Math对象

 <script>        var myMath = {            PI: 3.141592653,            max: function() {                var max = arguments[0];                for(var i = 1; i < arguments.length; i++) {                    if(arguments[i] > max) {                        max = arguments[i]                    }                }                return max;            },            min: function () {                var min = arguments[0];                for (var i = 1; i < arguments.length; i++) {                    if (arguments[i] < min) {                        min = arguments[i]                    }                }                return min;            }        }

3、Math取随机数

 <script>        // random方法进行随机取值        // 随机值的取值为 0 =< x < 1        console.log(Math.random())        // 能不能获取到一个随机数 10 - 100        // 0 - 1 * 90 = 0 - 90        console.log(Math.floor((Math.random() * (100 - 10)) + 10))        // 封装成了一个函数        function getRandom(min, max)  {            return Math.floor((Math.random() * (max - min + 1)) + min)        }        // 随机点名        var arr = ["曹鑫", "吉喆", "张嘉译"];        console.log(arr[getRandom(0, arr.length - 1)])    </script>

4、猜数字

    <script>           // 随机生成 1 - 10之间的整数,        // 2.需要猜数字,一直猜,如果正确就提示正确了,如果不正确就一直猜。        // 如果数字大了,提示大 小了提示小了。        function getRandom(max, min) {            return Math.floor(Math.random() * (max - min + 1) + min)        }        var randomNum = getRandom(1, 10);        while(1) {            var num = prompt("请输入您猜想的数字: (1-10之间)")            if(num > randomNum) {                alert("您猜的数字大了")            }else if(num < randomNum) {                alert("您猜的数字小了")            }else {                alert("猜对了")                break;            }        }     </script>

5Date对象是一个构造函数

   <script>        // var obj = new Object();        // Date 是一个构造函数        var date = new Date();         var date = new Date(2020, 3, 18);        var date = new Date("2020-03-18 10:12")     </script>

6、Date对象方法

    <script>        var date = new Date();        // 获取到当前的年份        console.log(date.getFullYear())        // 获取当前的月份。 获取的值从0开始         console.log(date.getMonth() + 1)        // 获取到日        console.log(date.getDate());        // 获取到星期几        console.log(date.getDay())        // 将咱们今天的日期输出出来 2020年3月18日星期三        var year = date.getFullYear();        var month = date.getMonth()+1;        var dates = date.getDate();        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']        var day = arr[date.getDay()];        console.log("今天日期为", year + "年" + month + "月" + dates + "号" + day);    </script>
/       / var date = new Date();        // // console.log(date)        // // 小时        // console.log(date.getHours())        // // 分钟        // console.log(date.getMinutes())        // // 秒        // console.log(date.getSeconds()) 

7、获取时间戳

  var date = new Date();
    <script>        // 时间戳是什么?        // 是从1970年1月1日0:0:0 到某一点时间点位置的总毫秒数!!!        var date = new Date();        // 1.获取时间戳方式1        console.log(date.valueOf())        // 2.获取时间戳方式2        console.log(date.getTime())        // 3.使用+new获取 这个+相当于调用valueof        console.log(+new Date())        // 4.Date.now()        console.log(Date.now())    </script>

8、倒计时

    <script>        // 倒计时        // 2020 3 19 12:00:00        //      3 18 10:36:42        // 1.初始化时间的时候注意        // 2020-3-19 12:00:00        function countDown(time) {            // 当前时间戳            var nowTime = +new Date();            // 未来时间戳            var willTime = +new Date(time)            // 时间戳偏移值,毫秒数 => 秒            var offsetTime = (willTime - nowTime)/1000;            //             var day = parseInt(offsetTime / 60 / 60 / 24); // 天数            var hours = parseInt(offsetTime / 60 / 60 % 24); // 剩余的小时数            var minutes = parseInt(offsetTime / 60 % 60); // 剩余的分钟数            var seconds = parseInt(offsetTime % 60); // 剩余的秒数            return "剩余时间为:" + day + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒";        }        console.log(countDown("2020-3-19 12:00:00"))    </script>

9、实例对象上的方法

    <script>        var arr = [1, 2, 3];        // 数组里面添加数据 4        // arr[arr.length] = 4;        // console.log(arr)        // 数组里面有对应的方法 push        // 1.push函数将10推到数组中去,并且返回arr的新长度 ,压到最后面        console.log(arr.push(10))        // 2.弹出pop        // pop 函数将10 弹出去, 并且返回弹出去的值!!!弹出去最后面的值        console.log(arr.pop())        // 3.unshift 压入        // unshift压到数组中的最前面,并且返回数组的新长度        console.log(arr.unshift(100))        // console.log(arr)        // 4.shift 弹出        // shift 函数将100 弹出去, 并且返回弹出去的值!!! 弹出去最前面的值        console.log(arr.shift())        console.log(arr)    </script>

10实例

    <script>
var arr = [20, 30, 24, 10, 8];
// 筛选出来大于10的数据
var newArr = []
for(var i = 0; i < arr.length; i++) {
if(arr[i] > 10) {
newArr.push(arr[i]) //将arr[i]的值推到新的数组里
}
}
console.log(newArr)
</script>

11、反转数组

   // 反转数组
var arr = [10, 8, 2, 3, 4, 5];
arr.reverse();
console.log(arr) 



  // 数组的排序
// 在函数中传递函数。
//
arr.sort(function(a, b) {
return b - a;
});
console.log(arr)
// 

12、获取元素中的索引值用indexOf

   var arr = ["red", "yellow", "pink", "yellow"]        // 想问yellow再数组中的索引下标是多少。1        // indexOf 获取到数组中第一个为yellow的索引值!!!        console.log(arr.indexOf("yellow"))        // lastIndexOf        console.log(arr.lastIndexOf("yellow"))

13、利用索引值去重

    <script>        // 把数组中的每一项都取出来,        // 每取一个值,就要和新数组中进行对比,看是否有了这个字符,如果没有直接压入,如果有则抛弃        var arr = ["a", "b", "c", "a", "d", "b"]        function unique(arr) {            var newArr = [];            for(var i = 0; i < arr.length; i++) {                // indexOf如果返回值为-1, 则不存在改索引                if(newArr.indexOf(arr[i]) === -1) {                    newArr.push(arr[i])                }            }            return newArr        }        console.log(unique(arr))    </script>

14、查找数组中出现字符的次数

    <script>        var str = "abddadadffretrtysdfgadadsfs";        // 需要查询出来 a 有多少个        var num = 0;        // indexOf如果没有这个字符,就会返回-1        var index = str.indexOf("a");        while(index !== -1) {            // 每一次循环必然会找到一个a.            num++;            index = str.indexOf('a', index + 1)        }        console.log("a出现的次数为", num)    </script>

15、charAt的使用

   <script>        var str = "你好"        // 由位置求出字符串中的字符!!!        console.log(str.charAt(1))        for(var i = 0; i < str.length; i++) {            console.log(str.charAt(i))        }        //charCodeAt是将字符转换成Ascii        // ASCII 是什么。编码。。。utf8 gbk gb2312...        var str = "helloworld"        console.log(str.charCodeAt(str[0]))        // formCharCode        var num = 104;        console.log(String.fromCharCode(num))    </script>

16、统计多次出现的字符和次数

    <script>        // 统计出来一个字符串中出现次数最多的字符,并且打印出来出现了几次!!!        // var obj = {        //     age: 18        // }        // while(1) {        //     if (obj['sex']) {        //         console.log("里面有属性")        //     } else {        //         obj['sex'] = "123"        //         console.log("没有这个属性")        //     }        // }        var str = "aaadddvdfsaffgfddvxfhgdfgfdgg";        var obj = {}        for(var i = 0; i < str.length; i++) {            var char = str.charAt(i);            if(obj[char]) {                // obj['a']++ = 2                obj[char]++;            }else {                // obj['a'] =  1                obj[char] = 1;            }        }        /*          key 是字符名称 num是字符的数量          obj{              key:num          }        */        console.log(obj)        var max = 0;        var ch = '';        for(var key in obj) {            if(obj[key] > max) {                max = obj[key]                ch = key;            }        }        console.log("在字符串中字符出现最多的是:"+ch+";出现了"+max+"次")    </script>

17、字符串的合并:

var str1 = "hello"        var str2 = "world"        // 使用concat进行连接字符串        var str3 = str1.concat(str2)        console.log(str3)

字符串的截取

var str4 = "中国加油,武汉加油"        // substr截取字符串        // 第一个参数为从索引号为0 开始        // 第二个参数取几个字符        // -1是在最后一个位置        console.log(str4.substr(-3, 2))

字符的替换

   // 字符串里面的字符进行替换        // " " => ""        var str = "helloworld 改 革 春 风 吹 满 地 ";        // helloworld改 革 春 风 吹 满 地        // helloworld改革 春 风 吹 满 地         // helloworld改革春 风 吹 满 地         while(str.indexOf(" ") !== -1) {            str = str.replace(" ", "")        }        console.log(str)

字符转换为数组

    var str = "red,pink,blue"        console.log(str.split(","))