JavaScript基础笔记(五)

一.内置对象

Js中对象分为三种:自定义对象,内置对象,浏览器对象

内置对象就是指js语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能。

查MDN文档:MDN Web Docs

1.查阅方法的功能

2.查看参数的意义和类型

3.查看返回值的意义和类型

4.通过demo测试

二.Math对象

 //Math对象
    console.log(Math.PI);//圆周率

    console.log(Math.max(1,3,5));
    console.log(Math.max(1,3,'pink'));//输出NaN
    console.log(Math.max());//-Infinity

    //封装自己的Math对象
    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;
        }
    }
    console.log(myMath.PI);
    console.log(myMath.max(1,5,9));
    console.log(myMath.min(1,5,9));

Math绝对值和三个取整方法

    //Math绝对值和三个取整方法
    console.log(Math.abs(-1));//绝对值
    console.log(Math.abs('-1'));//  1
    console.log(Math.abs('pink'));//NaN

    console.log(Math.floor(1.9));//向下取整   往小了取  1
    console.log(Math.ceil(1.1));//向上取整   往大了取  2
    console.log(Math.round(1.1));//四舍五入   1
    console.log(Math.round(-1.1));//-1
    console.log(Math.round(-1.5));//结果应该是-2,但输出是-1
    //其他数字都是四舍五入,只有.5特殊,是往大了取。

//Math对象随机数方法  random()返回一个随机的小数

    //在0与1之间,大于等于0小于1。

    //方法里面是没有参数的。

 //Math对象随机数方法  random()返回一个随机的小数
    //在0与1之间,大于等于0小于1。
    //方法里面是没有参数的。
    console.log(Math.random());
    //得到两个数之间的随机整数,并且包含这2个数
    function getRandom(min,max){
        return Math.floor(Math.random()*(max-min+1))+min;
    }
    console.log(getRandom(1,10));

三.日期对象

Date()日期对象是一个构造函数,必须使用new来调用创建我们的日期对象

 //日期对象
    var arr=new Array();//创建一个数组对象
    var obj=new Object();//创建了一个对象实例
    //1.使用Date
    var date=new Date();//没有参数,返回当前系统的当前时间
    console.log(date);
    //2.使用参数
    var date1=new Date(2022,10,1)
    console.log(date1);//返回的是11月,不是10月
    var date2=new Date('2022-10-1 8:8:8');
    console.log(date2);
 //日期格式化
    var date=new Date();
    console.log(date.getFullYear());//返回当前日期的年
    console.log(date.getMonth());//月  返回的月份小1一个月,因为月份是从0到11
    console.log(date.getMonth()+1);
    console.log(date.getDate());//几号
    console.log(date.getDay());//星期几   周一返回1,周六返回6,但是周天返回0
    
 console.log(date.getHours());
    console.log(date.getMinutes());
    console.log(date.getSeconds());

    function getTime(){
        var time=new Date();
        var h=time.getHours();
        h=h<10?'0'+h:h;
        var m=time.getMinutes();
        m=m<10?'0'+m:m;
        var s=time.getSeconds();
        s=s<10?'0'+s:s;
        return h+':'+m+':'+s;
    }
    console.log(getTime());

Date毫秒数是基于1970年1月1日。

//获得总的毫秒数

    var date = new Date();

    console.log(date.valueOf());

    console.log(date.getTime());

    var date1=+new Date();

    console.log(date1);

    console.log(Date.now());

//倒计时例子
 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);
        return d+'天'+h+'时'+m+'分'+s+'秒';
    }
    console.log(countDown('2022-12-13 18:00:00'));

四.数组对象

  //创建数组

    var arr=[1,2,3];

    console.log(arr[0]);

    var arr1=new Array(2);//表示数组的长度为2

    console.log(arr1);

    var arr1=new Array(2,3);//等价于[2,3]

    console.log(arr1);

 //判断是否为数组
    var arr=[];
    console.log(arr instanceof Array);

    console.log(Array.isArray(arr));

 


    //数组排序
    var arr=['pink','red','blue'];
    arr.reverse();
    console.log(arr);

    var arr1=[3,4,7,1];
    arr1.sort();
    console.log(arr1);

    var arr1=[13,4,77,1,7];
    arr1.sort();//此时排序是有问题的,因为sort排序时,看左边的第一位数。
    console.log(arr1);

    var arr1=[3,4,7,1];
    arr1.sort(function(a,b){
        return a-b;//升序排序
    });
    console.log(arr1);

如果数组里边有很多个相同元素,indexof只返回第一个元素的索引。

如果在数组里找不到元素,返回-1.

//数组去重
    function unique(arr){
        var newArr=[];
        for(var i=0;i<arr.length;i++){
            if(newArr.indexOf(arr[i])===-1){
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }
    var demo=unique(['c','a','z','c','a','z','b']);
    console.log(demo);

将数组转换为字符串

 

五. 字符串对象

基本包装类型:就是把简单数据类型包装成为了复杂数据类型。

字符串的不可变:指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。

字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。

 //根据字符返回位置
    var str='你好啊';
    console.log(str.indexOf('好'));
    console.log(str.indexOf('啊',1));//从索引号是1的位置开始往后查找
    

字符串的操作方法:

 

 //替换字符
    var str='andy';
    console.log(str.replace('a','b'));//出现多个需要替换的字符时,替换第一个
    //字符转换为数组
    var str='red,pink,blue';
    console.log(str.split(','));//用逗号进行分割

简单数据类型又叫做基本数据类型或者值类型,复杂数据类型又叫做引用类型

值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型

String,number,boolean,undefined,null

引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型,通过new关键字创建的对象(系统对象,自定义对象),如object,array,date等。

 //简单数据类型null,返回的是一个空的对象,object
    var timer=null;
    console.log(typeof timer);

简单数据类型放在栈里面,存放的是值。

复杂数据类型,首先在栈中存放十六进制的地址,然后再由地址去堆里面找数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值