目录
    
   
    认识对象
   
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")); //40792、输入n,输出n天后的时间
        function afterOfDate(n){
            var d = new Date();
            var day = d.getDate();
            d.setDate(day + n);
            return d;
        }
        alert(afterOfDate(3)); 
