十一、内置对象

第一部分:内置对象

(一)内置对象导读

javascript内置对象都有哪些博客_开发语言

(二)内置对象的概念

JS中,对象分三大类:自定义对象,内置对象,浏览器对象

前面两种对象时JS基础内容,是ECMAScript.第三个浏览器对象是JS独有的.

内置对象,比如手机自带的功能就是手机的内置对象,我们不关心它的具体实现过程.

内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法).

内置对象最大的优点就是帮助我们快速开发.

JS中的常见内置对象有:Math,Date,Array,String等

(三)学会查阅MDN文档

学内置对象最有效的学习方式就是查文档,用MDN查.

Mozilla开发者网络(MDN)提供了有关开放网络技术(OpenWeb)的信息,包括HTML,CSS和万维网以及HTML5应用的API

查阅到的是对象,那该如何学习对象中的方法?(步骤)

  1. 查阅该方法的功能.
  2. 查看里面参数的意义和类型(带中括号的参数指的是可以有也可以没有).
  3. 查看返回值的意义和类型.
  4. 通过demo进行测试

这个文档也可以通过中文查阅

第二部分:Math对象

(四)Math对象

Math对象不是构造函数,它具有数学函数和常数的属性和方法,跟数学相关的运算(求绝对值,取整,最大值等)可以使用Math中的成员.

  1. 最大值方法
    Math中的属性和方法都是静态的,可以直接使用,无需new
    如: console.log(Math.PI); //属性 console.log(Math.max(1,99,3)); //方法 Math.max里面如果没有传参数,则返回-Infinity.如果传递了非数值参数,结果为NaN
  2. 封装自己的数学对象案例:利用对象封装自己的数学对象,里面有PI,最大值,最小值. var myMath={  
1.   PI: 3.1415926,
    max: function(){
        var max=arguments[0];
        for(var i=0;i<arguments.length;i++){
            if(max<arguments[i]) max=arguments[i];
        }
        return max;
    },
    min:function(){
        var min=arguments[0];
        for(var i=0;i<arguments.length;i++){
            if(min>arguments[i]) min=arguments[i];
        }
        return min;
    }
}
console.log(myMath.PI);
  1. 绝对值 console.log(Math.abs(1)); console.log(Math.abs(-1)); console.log(Math.abs('-1')); //输出还是1 绝对值方法中存在隐式转换,会将字符串转成数值.
  2. 取整方法 Math.floor(1.1);  //输出为1,向下取整 Math.ceil(1.1);   //输出为2,向上取整 Math.round(1.1);  //输出为1,四舍五入   .5往大取,Math.round(-1.5)==-1
  3. 随机数方法random() Math.random(); 它随机返回一个[0,1)之间的小数.如果想得到两个数之间的随机整数: Math.getRandomInt(min,max); 也可以自己重写方法,完成自己的随机函数: var arr=['张三','李四','王五','赵六'];
3. function getRandom(min,max){
    return Math.floor(Math.random()*(max-min+1)+min);
}
var num=getRandom(0,arr.length-1);
console.log(arr[num]);

(五)Math案例:猜数字游戏

javascript内置对象都有哪些博客_内置对象_02


function getRandom(min,max){
    return Math.floor(Math.random()*(max-min+1)+min);
}
var num=getRandom(0,10);
while(true){
    var mynum=prompt('请猜数字')-0;
    if(num==mynum) break;
    else if(num<mynum) alert('太大了');
    else alert('太小了');
}
alert('猜对啦!!');


第三部分:Date对象

(六)Date日期对象

Date要通过Date构造函数来创建对象,必须new才能用.


var date=new Date();
console.log(date);


输出为当前时间

里面可以有参数,常用的写法为:

var date1=new Date(2019,10,02);
var date2=new Date('2019-10-1 8:8:8');


里面输入的如果是数字,月份一项会默认从0开始记.如果输入的是1-12,则实际结果会比输入的大1

因此最常用的是字符串

(七)格式化日期

手动书写日期格式,就是日期的格式化.

常用的日期方法:

  1. getFullYear():获取当年
  2. getMonth():获取当月(0-11)
  3. getDate():获取当天日期
  4. getDay():获取当天星期几(0-6),周日是0,剩下的从1到6.
  5. getHours():获取当前小时
  6. getMinutes():获取当前分钟
  7. getSeconds():获取当前秒钟

如:


var date=new Date();
console.log(date.getFullYear());
console.log(date.getMonth());


如果想要20xx年 xx月 xx日的格式,则需要:


var date=new Date();
var year=date.getFullYear();
var month=date.getMonth()+1;
var day=date.getDate();
console.log('今天是'+year+'年 '+month+'月 '+day+'日');


时分秒同理.

也可以获取总的毫秒数,从1970年1月1日至今的毫秒数:


var date=new Date();
console.log(date.valueOf());
console.log(date.getTime()); //这两个的都是获取当前毫秒数.
//简单写法:(最常用的写法)
var date1=+new Date(); //它的返回值就是总的毫秒数
//最最简单的写法:
console.log(Date.now()); //直接获取现在的毫秒数,不创建对象


总的毫秒数也叫时间戳,因为只要盖了这个戳,就是独一无二的,不会再重复.

(八)倒计时

做一个倒计时效果

用输入的时间减去现在的时间,就是剩余的时间.

注意,不能用时间直接相减.要用时间戳,1970开始的两个时间毫秒数相减.

javascript内置对象都有哪些博客_内置对象_03


function countDown(time){
    var nowTime=+new Date();
    var inPutTime=+new Date(time);
    var times=inPutTime-nowTime;
    var second=parseInt(times/1000)%60;
    second=second<10? '0'+second : second;
    var minute=parseInt(time/1000/60)%60;
    minute=minute<10? '0'+minute : minute;
    var hour=parseInt(time/1000/60/60)%24;
    hour=hour<10? '0'+hour : hour;
    var day=parseInt(time/1000/60/60/24)%365;
    day=day<10? '0'+day : day;
    console.log(day+' '+hour+' '+minute+' '+second);
}
var date=new Date('2022-8-1');
countDown(date);