JavaScript学习——内置对象

内置对象

定义:是指JS语言自带的一些对象,这些对象供开发者使用,并且提供了一些常用的或者是最基本而且必要的功能

常用的内置对象:Math、Date…

查阅文档:MDN

Math对象

Math数学对象,不是一个构造函数,所以我们不需要new来调用而是直接使用里面的属性方法

代码:

        var math = {
            PI: 3.1415926,
            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;
            } 


        }

        console.log(math.PI);
        console.log(math.Max(1,2));
        console.log(math.Min(10,10));

其他常用成员:

Math.PI           					   // 圆周率
Math.floor()    					   // 向下取整
Math.ceil()     					   // 向上取整
Math.round()					       // 四舍五入版就近取整 注意 -3.5 结果为 -3
Math.abs()  						   // 绝对值
Math.max() / Math.min()                //求最大和最小

随机数方法 : Math.random() 返回一个随机小数[ 0 , 1 ),不跟参数

案例:猜数字游戏


       function getRandom(min, max){

           return Math.floor(Math.random() * (max - min + 1)) + min;
       } 

       var random = getRandom(1,10);
       while(true){
            var num = prompt('猜一下数字是多少(1-10)');
            if(num > random) {
                alert('数字大了');
            }
            else if(num < random){
                alert('数字小了');
            }
            else{
                alert('你猜对了');
                break; // 退出整个循环,程序结束。
            }
       }

日期对象

是一个构造函数,不许使用new 来创建日期对象

var arr = new Array(); // 创建一个数组对象
var obj = new Object(); // 创建一个对象实例

//1、Date的使用,如果没有参数,返回当前系统的当前时间
var date = new Date();
console.log(date);

//2、参数常用的写法 数字型 2019,10,01 或者是 字符串型 ‘2019-10-1 8:8:8’
var date1 = new Date(2019,10,1)
console.log(date1); // 返回的是 11月 不是 10月
var date1 = new Date('2019-10-1 8:8:8')
console.log(date2);

//2、格式化日期 年月日
var date = new Date();
console.log(date.getFullYear()); // 返回当前日期的年 
console.log(date.getFullMonth() + 1); // 返回当前日期的月 
/*写星期几的要用中文的的话 可以用数组将周一到周日写进去*/

//3、格式化日期 时分秒
function getTime(){
	var time = new Date();
	var hours = time.getHours();
	hours = hours < 10 ? '0' + hours : hours;
	var minutes = time.getMinutes();
	minutes = minutes < 10 ? '0' + minutes : minutes;
	var seconds = time.getSeconds();
	seconds = seconds < 10 ? '0' + seconds : seconds;
	return hours + ':' + m + ':' + s;
}

//获得Date总的毫秒数
var date = new Date();
console.log(date.valueOf());
var date1 = +new Date(); // 返回的就是总的毫秒数
console.log(Date.now()); // H5新增方法  毫秒数用来作为时间戳

在这里插入图片描述
案例:倒计时

       // 1、算法核心:输入时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿着时分秒详见,比如05分减去25分,结果就是负数。 
       // 2、用时间戳来做
       // 3、把剩余时间总的毫秒数转换为天、时、分、秒
       function countDown(time){
            var nowTime = +new Date(); // 返回的时当前时间总的毫秒数
            var inputTime = +new Date(time); // 返回的时用户输入时间的总的毫秒数
            var times = (inputTime - nowTime) / 1000;
            var d = parseInt(times / 60 / 60 / 24); // 计算天数
            var h = parseInt(times / 60 / 60 % 24); // 计算小时
            var m = parseInt(times / 60 % 60); // 计算分钟
            var s = parseInt(times % 60); //计算秒数

            d = d < 10 ? '0' + d : d;
            h = h < 10 ? '0' + h : h;
            m = m < 10 ? '0' + m : m;
            s = s < 10 ? '0' + s : s;
            return d + ' 天 ' + h + ' 小时 ' + m + ' 分 ' + s + '秒';

       }
       console.log(countDown('2020-3-4 00:00:00'));

数组对象

         var arr = new Array(2); // 创建一个空的数组 2表示数组长度为2
         var arr1 = new Array(2,3); // 等价于[2,3],表示两个数组元素2,3
  • 检验数组是否为数组
    1、运算符 instanceof 检测是否为数组
    2、方法 Array.isArray()
        function reverse(arr){

            if (arr instanceof Array){ // Array.isArray()也是有相同作用
                var newArray = [];
                for(var i = arr.length - 1; i >= 0; i--){
                    newArray[newArray.length] = arr[i];
                }
                return newArray;
            }else{
                return 'error 这个参数必须是格式xxxx'
            }
  • 添加删除数组元素的方法
    在这里插入图片描述
       
        // 有一个包含工资的数组[1500,1200,2100,1800],要求把数组中的工资超过两百的删除,剩余的放到新数组里面

        var arr = [1500,1200,2100,1800];
        var newArray = [];
        for(var i = 0; i < arr.length; i++){
 
            if(arr[i] < 2000){
                newArray.push(arr[i]);
            }

        }
        console.log(newArray);
  • 翻转数组 数组.reverse()
  • 数组排序 数组.sort() 但是这个方法只能排序个位数的数组,完美写法如下:
        var arr = [1,14,5,89,13];
        arr.sort(function(a,b){
            return a - b; // 升序顺序排列 降序为 return b - a
        });
        console.log(arr);
        
  • 获取数组索引号: 数组.indexOf('元素')数组.lastIndexOf('元素')返回数组元素索引号
        var arr = [1,14,5,89,13];
        console.log(arr.indexOf('14')); // 返回 1 如果找不到14这个元素返回 -1
        console.log(arr.lastIndexOf('14')); // 返回 1 如果找不到14这个元素返回 -1 (从后往前找)

        // 有一个数组 ['c','a','z','a','x','a','x','c','b'],要求去除数组中的元素
        // 核心算法:遍历数组,然后拿着就数组查询新数组,如果该数组再欣的数组里面没有出现过,就添加否则不添加。

        function reMove(arr){
            var newArr = [];
            for(var i = 0; i < arr.length; i++ ){
                if(newArr.indexOf(arr[i]) === -1){
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }

        var arr1 = ['c','a','z','a','x','a','x','c','b'];
        arr1 = reMove(arr1);
        console.log(arr1); 
        //返回 ["c", "a", "z", "x", "b"]
  • 数组转化成字符串 数组.join(‘分隔符’);
        var arr = [1,14,5,89,13];
        console.log(arr.join('-'));
        //返回 1-14-5-89-13
  • 其他
    在这里插入图片描述

字符串对象

引入
在这里插入图片描述

  • 根据字符返回位置
    在这里插入图片描述
        var str = '我在进行JS学习,你在干什么';
        console.log(str.indexOf('在')); // 返回 1
        console.log(str.indexOf('在',3)); // 返回 10

        // 查找字符串 'abcoefoxyozzopp' 出现的位置以及次数。
        // 核心算法 1、先查找第一个o出现的位置
        //         2、然后只要indexOf返回的结果不是 -1 就继续往后查找
        //         3、因为indexOf只查早第一个,然后后面的查找,利用第二个参数,当前索引加 1 
        //            从而继续你查找
         
        var str = 'abcoefoxyozzopp';
        var index = str.indexOf('o');
        var num = 0;
        while(index !== -1){
            console.log(index);
            index = str.indexOf('o', index + 1);
            num ++;

        }
        console.log(num);
  • 根据根据位置返回字符在这里插入图片描述
        // 查找字符串 'abcoefoxyozzopp' 出现最多的字符以及统计次数。
        // 核心算法 1、利用charArt()遍历整个字符串
        //         2、把每个字符存储给对象,如果对象没有该属性,就为1,如果存在了就 +1
        //         3、遍历对象,得到最大值和该字符
         
        var str = 'abcoefoxyozzopp';
        var o = {};
        var max = 0;
        var char = '';
        for(var i = 0; i < str.length; i++){
            var chars = str.charAt(i);
            if(o[chars]){
                o[chars]++; // 如果有个属性并且已经存储了值,则 +1
            }else{
                o[chars] = 1; // 如果没有这个属性就让这个属性的值为 1 
            }
        }
        console.log(o);
        for(var j in o){
            if(o[j] > max){
                max = o[j];
                ch = j;
            }
        }
        console.log(max);
        console.log('出现最多的字符是: ' + ch);
  • 字符串操作方法
    在这里插入图片描述
        var str = '我在学习JS';
        console.log(str.substr(2,4)); // 输出: 学习JS
        var str1 = 'abcoefoxyozzopp';
        while(str1.indexOf('o') !== -1){
			str1 = str1.replace('o','*');
		}
		console.log(str1); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值