Javascript对象部分

  • Post author:
  • Post category:java



目录


认识对象


对象


delete


Math对象的方法


声明日期对象


日期对象的方法


自定义当前时间


日期对象的练习


Date.parse( )


d.getTime( )/d.setTime( )


认识对象

1、发展历史

汇编语言:汇编、C语言        面向过程语言

编码语言:Java、C++、JavaScript、Object-C、python     面向对象语言

2、思想

面向过程编程思想:只考虑数学逻辑

面向对象编程思想:直接将生活逻辑映射到我们的程序

<1>分析有哪些实体

<2>设置实体属性和功能

<3>实体之间相互作用

例子:

有一辆车速度为60km/h,一条路1000km,问题:如果让这辆车跑完这条路,需要多长时间?

车:

属性:speed          60km/h

功能:可以跑在路上

路:

属性:length        1000km

最后,让车真的跑在路上得出结果

3、语法(在javascript中没有类这个概念,只有对象,ECMA6版新增了类这个概念)

类:一类具有相同特征事物的抽象概念

对象:具体某一个个体,唯一的实例。

对象

1、通过new运算符声明对象

2、通过省略new

3、对象常量赋值(使用大括号,代表对象)

        var obj1 = new Object();
        var obj2 = Object();
        var obj3 = {};

        /* 
            对象属性          普通变量
            婚后名(X太太)      婚前名
        */

        //新增属性   使用起来和普通的变量没有任何区别
        obj3.username = '钢铁侠';
        obj3.age = 10;

        alert(obj3.username);
        alert(obj3.age); 
         var obj3 = {};
        //[]填写的必须是字符串
        obj3['username'] = '钢铁侠';
        obj3['age'] = 10;

        alert(obj3['username']);
        alert(obj3['age']);

        // alert(obj3.username);
        // alert(obj3.age);

        //新增方法  使用起来和普通的函数没有任何区别
        obj3.show = function(){
            alert("我的名字" + obj3.username + ",今年" + obj3.age + "岁");
        }

        obj3.show();

        //方法二
        obj3['show'] = function(){
            alert("我的名字" + obj3.username + ",今年" + obj3.age + "岁");
        }

        obj3['show']();
    var obj3 = {
            username: "钢铁侠", //可以直接写属性名
            "age": 18,  //也可以添加引号
            show: function(){
                alert("我的名字" + obj3.username + ",今年" + obj3.age + "岁");
            }
        } 

        obj3.show();


delete


关键字          删除对象的属性或者方法

        var obj3 = {
            username: "钢铁侠", //可以直接写属性名
            "age": 18,  //也可以添加引号
            show: function(){
                alert("我的名字" + obj3.username + ",今年" + obj3.age + "岁");
            }
        };

        obj3.show();

        delete obj3.username;
        delete obj3.show;
        alert(obj3.username);
        obj3['show'](); //undefined

数据结构

基本数据类型(存储一个值)   =>  数组(处理批量的数据)  =>  对象(既可以存储数据又可以存储函数)

Math对象的方法

在JS中一切皆对象。

【注】在JS中,很多关于数学运算的函数,直接一个Math对象提供。

Math.random( ) 返回 0 ~ 1之间的随机数
Math.max(num1,num2) 返回较大的数
Math.min(num1,num2) 返回较小的数
Math.abs(num) 绝对值
Math.ceil(19.3) 向上取整
Math.floor(11.8) 向下取整
Math.pow(x,y) x的y次方
Math.sqrt(num) 开平方
Math.round( ) 四舍五入(成整数,只看小数点后一位)
Math.sin( ) 正弦(传入的参数是弧度)
Math.cos( ) 余弦(传入的参数是弧度)
Math.PI = 180弧度 1弧度 = Math.PI / 100
        alert(Math.max(10,20,30,40,50));    //50
        alert(Math.min(10,20,30,40,50));   //10
        alert(Math.round(3.49));    //3
        alert(Math.round(3.91));    //4
        alert(Math.ceil(3.1));  //4
        alert(Math.floor(3.9));  //3
        alert(Math.sin(30 * Math.PI / 180));    //0.499999999...;精度有问题    

声明日期对象

1、没有传入参数,默认当前系统时间

Thu Oct 20 2022 22:10:36 GMT+0800 (中国标准时间)

GMT  格林尼治时间

        var d = new Date();
        alert(d);   //Thu Oct 20 2022 22:10:36 GMT+0800 (中国标准时间)

2、传入参数

“2000-01-01”

“2000/01/01”

按照顺序,分别传入参数        年    月     日   时    分     秒     毫秒

【注】国外月份从0开始的   0~11

直接传入毫秒数        1秒 = 1000毫秒        (以1970年1月1日  0:0:0 为参照时间点去进行换算)

1970年1月1日:linux创始人 林纳斯·托瓦兹        Github网站

        var d = new Date("2000-01-01"); //Sat Jan 01 2000 08:00:00 GMT+0800 (中国标准时间)
        var d = new Date("2000/01/01"); //Sat Jan 01 2000 00:00:00 GMT+0800 (中国标准时间)
        var d = new Date(2000, 1, 8, 30, 50);//Wed Feb 09 2000 06:50:00 GMT+0800 (中国标准时间)
        var d = new Date(2000, 0, 1, 8, 30, 50);//Sat Jan 01 2000 08:30:50 GMT+0800 (中国标准时间)
        var d = new Date(1000); //Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)
        alert(d);

日期对象的方法

alert(xx.toDateString( )); 以特定的格式显示星期几、月、日和年
alert(xx.toTimeString( )); 以特定的格式显示时、分、秒和时区
alert(xx.toLocaleDateString( )); 以特定地区格式显示星期几、月、日和年
alert(xx.toLocaleTimeString( )); 以特定地区格式显示时、分、秒和时区
alert(xx.toUTCString( ));

以特定的格式显示完整的UTC日期

        var d = new Date();
        alert(d.toDateString());//Thu Oct 20 2022
        alert(d.toTimeString());//22:31:06 GMT+0800 (中国标准时间)
        alert(d.toLocaleDateString());//2022/10/20
        alert(d.toLocaleTimeString());//22:32:01
        alert(d.toLocaleDateString() + " " + d.toLocaleTimeString());//2022/10/20 22:33:08

自定义当前时间

set/getDate( ) 从Date对象中返回一个月中某一天(1~31)
getDay( ) 从Date对象返回一周中某一天(0~6)
set/getMonth( ) 从Date对象中返回月份(0~11)
set/getFullYear( ) 从Date对象以四位数返回年份
set/getHours( ) 返回Date对象的小时(0~23)
set/getMinutes( ) 返回Date对象的分钟(0~59)
set/getSeconds( ) 返回Date对象的秒数(0~59)
set/getMilliseconds( ) 返回Date对象的毫秒
set/getTime( ) 返回1970年1月1日至今的毫秒数
getTimezoneOffset( ) 返回本地时间与格林威治标准时间(GMT)的分钟差
        function showTime(){
            var d = new Date();
            var year = d.getFullYear();
            var month = d.getMonth() + 1;   //0-11
            var date = d.getDate();

            var week = d.getDay();  //0-6 0是周日
            week = numOfChinese(week);
            
            // var hour = d.getHours();
            // var min = d.getMinutes();
            // var sec = d.getSeconds();

            var hour = doubleNum(d.getHours());
            var min = doubleNum(d.getMinutes());
            var sec = doubleNum(d.getSeconds());

            var str = year + "年" + month + "月" + date + "日 星期" + week + " " + hour + ":" + min + ":" + sec;
            return str;
        }

        //数字转成中文
        function numOfChinese(num){
            var arr = ["日", "一", "二", "三", "四", "五", "六"];
            return arr[num];
        }

        function doubleNum(n){
            if(n < 10){
                return "0" + n;
            }else{
                return n;
            }
        }

        document.write(showTime()); //修改前:2022年10月20日 星期4 22:50:1;  修改后:2022年10月20日 星期四 22:55:22

日期对象的练习

【注】所有的参照时间点都是1970年



Date.parse( )




格式:Date.parse(日期对象)

功能:可以将日期对象转成毫秒数



d.getTime( )/d.setTime( )




格式:日期对象.getTime/setTime

功能:将当前日期对象转成毫秒数

        var d = new Date();
        alert(d);   //Thu Oct 20 2022 23:01:55 GMT+0800 (中国标准时间)
        // alert(Date.parse(d));   //1666278031000
        // alert(d.getTime());     //1666278031476

        d.setTime(1000);//重置毫秒数
        alert(d);   //Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)

1、获取两个日期之间相差的天数

规定:传入的日期格式        “2000-01-01”         “2000/01/01”

        function countOfDate(d1, d2){
            var dd1 = new Date(d1);
            var dd2 = new Date(d2);

            var time1 = dd1.getTime();
            var time2 = dd2.getTime();
            var time = Math.abs(time1 - time2);
            return parseInt(time / 1000 / 3600 / 24);
        }

        alert(countOfDate("2008-08-08", "2019-10-09")); //4079

2、输入n,输出n天后的时间

        function afterOfDate(n){
            var d = new Date();
            var day = d.getDate();
            d.setDate(day + n);
            return d;
        }
        alert(afterOfDate(3));



版权声明:本文为qq_52781485原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。