2021-01-06对象及Math,Date

一、对象

  • 基础类型
    number string boolean null undefined

  • 引用类型
    数组 函数 对象

  • 对象是指一个具体的事物。万物皆对象。
    一个具体的事物一般都会有行为和特征。

    例如 手机:
    行为:打电话 聊微信 玩和平精英 刷新闻
    特征:颜色 屏幕分辨率 摄像头像素

  • 对象的行为------js对象的函数

  • 对象的特征------js对象的属性

  • JavaScript中的对象
    JavaScript中的对象可以看做生活中具体事物的抽象。
    js对象是属性+函数的集合。
    属性:可以是基本数据类型,也可以是引用数据类型。

  • 2.创建一个对象
    1.使用new关键字类创建
    2.使用字面量

var hero = new Object();
var hero ={
};

2.1新增属性

hero.heroName = ("貂蝉");
hero["hero.age"] = 18;

2.2使用属性
对象名.属性名

alert(hero.heroName);
alert(hero["hero.age"]);

2.3新增方法

对象名.属性名=function(){
            函数体
        };
hero.skillOne = function() {
        console.log("对方对你使用了一技能");
        }

3 遍历属性
for…in语法
key 表示属性名
属性值:obj[key]

for(var key in obj){
            
        }
//使用字面量新建一个对象
    var hero = {
        "heroName": "亚索",
        "age": 30,
        skillOne: function() {
            console.log("斩钢闪");
        },
        skillTwo: function() {
            console.log("一去不复返");
        }
    };
    for (key in hero) {
        console.log(key + "===" + hero[key]);
    }

遍历结果:
在这里插入图片描述

for (key in hero) {
        console.log(hero[key]);
    }

在这里插入图片描述
4 删除属性
delete 对象名.属性名

//删除前可弹出3,删除后为undefined
hero.age = "3";
delete hero.age;
alert(hero.age);

二、对象的分类

1.内建对象

由ES标准定义的对象,在任何ES实现中都可以使用 js提供的对象
Math Date String Number Boolean Function Object

2.宿主对象

主要有浏览器提供的对象。
BOM DOM

3.自定义对象

开发人员自己定义的对象。

三、基本类型与引用类型区别

  • 区别:
    基础数据类型的数据存储在栈中,变量直接指向的是基础数据类型的值。
    引用数据类型的数据存储在堆中,变量指向的是引用数据类型的地址。
  • 比较:
    基本数据类型比较时,比较值。
    而引用数据类型比较时,比较内存地址,如果内存地址相同,指向了同一个对象,则相等,否则不相等。
// 结果:11,10,false
var a = 10;
var b = a;
a++;
alert(a);
alert(b);
alert(a == b);
// 结果:阿丽亚科通,阿丽亚科通,[object Object]
        var hero = {
            "hName": "亚索",
            "R": "狂风绝息斩"
        }
        var hero2 = {
            "hName": "亚索",
            "R": "狂风绝息斩"
        }
        var hero2 = hero;
        hero.R = "阿丽亚科通";
        alert(hero.R);
        alert(hero2.R);
        alert(hero = hero2);

四、Math对象

Math对象: 提供了很多关于运算的方法。

    Math.random(); 返回0-1之间的随机数。
假如我们需要一个n-m之间的数。Math.round(Math.random()*(m-n))+n 
    Math.round()四舍五入
    Math.max() 返回最大值。
    Math.min() 返回最小值
    Math.abs() 返回绝对值
    Math.ceil()向上取整
    Math.floor() 向下取值
    Math.pow(x,y)  x的y次方
    Math.sqrt(num) 开平方
    
    Math.PI = 180°  弧度。
    1弧度=Math.PI/180.
//1-10
alert(Math.round(Math.random() * 9) + 1);
//3-7 能取到3,取不到7,6.99也是取整数6
alert(parseInt(Math.random() * 4) + 3);
alert(Math.min(1, 5, 20, 15));
alert(Math.abs(-5));
alert(Math.ceil(9.000000000));
alert(Math.floor(-9.9999999));
alert(Math.pow(2, 3));
alert(Math.sqrt(9));
封装一个函数:随机生成一个十六进制的颜色值,然后将结果返回。
            #ff6700  #b0b0b0
            0-f 放入一个数组
            0-1 0-15下标

function color() {
            var str = "#";
            var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f"];
            for (var i = 0; i <= 5; i++) {
                str += arr[Math.round(Math.random() * 15)];
            }
            return str;
        }
        document.write(color());

五、Date对象

1.创建日期对象。

 Wed Jan 06 2021 14:38:02 GMT+0800 (中国标准时间)
 星期 月  日  年  时 分 秒   时区

创建日期对象时,可以指定日期。时分秒若不填写,则默认为00:00:00

  • 指定日期的几种方式:
    1.new Date(“2021/01/07”)
    2.new Date(2020,09,30,15,33,20);
    在国外,月份是从0开始的,0-11
    3.new Date(1576800000000);
    4.new Date(“2020-12-31 12:30:20”);
//非指定,是现在的时间
var d = new Date();
//Wed Jan 06 2021 00:00:00 GMT+0800 (中国标准时间)
var d = new Date("2021/01/06");
//Sat Feb 06 2021 15:30:24 GMT+0800 (中国标准时间)
var d = new Date(2021, 01, 06, 15, 30, 24);
//Fri Dec 20 2019 08:00:00 GMT+0800 (中国标准时间)
var d = new Date(1576800000000);
//Wed Jan 06 2021 15:30:20 GMT+0800 (中国标准时间)
var d = new Date("2021-01-06 15:30:20");
alert(d);

1.日期对象方法

格式:Date.parse(日期对象);
返回值:指定的日期和时间据 1970/1/1 午夜(GMT 时间)之间的毫秒数。
功能:将日期对象转为毫秒数。

//1609862400000
var d1 = Date.parse("2021, 01, 06");
document.write(d1); 
获取日期:
        d.getTime()  获取当前的毫秒数。 返回 197011 日至今的毫秒数。
        d.getDate()  返回日
        d.getDay()  返回周几。
        d.getMonth()  获取月份 从0开始  范围为:0-11
        d.getFullYear() 返回年
        d.getHours() 获取小时数
        d.getMinutes() 获取分钟数
        d.getSeconds() 获取秒数
        d.getMilliseconds() 获取毫秒数
        d.getTimezoneOffset()  获取本地时间与格林威治时间的分钟差。
设置日期:
        setDate()  设置日期的天数。
        setMonth() 设置月份
        d.setFullYear() 设置日期的年份
        d.setHours() 设置小时数
        d.setMinutes() 设置分钟数
        d.setSeconds() 设置秒数
        d.setMilliseconds() 设置毫秒数
 练习:将当前时间以(yyyy-MM-DD hh:mm:ss)这个格式输出到页面上。
    var d = new Date();
    var d1 = d.getFullYear();
    var d2 = d.getMonth() + 1;
    var d3 = d.getDate();
    var d4 = d.getHours();
    var d5 = d.getMinutes();
    var d6 = d.getSeconds();
    // d2 = d2 < 10 ? "0" + d2 : d2;
    // d3 = d3 < 10 ? "0" + d3 : d3;
    // d4 = d4 < 10 ? "0" + d4 : d4;
    // d5 = d5 < 10 ? "0" + d5 : d5;
    // d6 = d6 < 10 ? "0" + d6 : d6;
    // document.write(d1 + "-" + d2 + "-" + d3 + " " + d4 + ":" + d5 + ":" + d6);
    document.write(d1 + "-" + (d2 < 10 ? "0" + d2 : d2) + "-" + (d3 < 10 ? "0" + d3 : d3) + " " + (d4 < 10 ? "0" + d4 : d4) + ":" + (d5 < 10 ? "0" + d5 : d5) + ":" + (d6 < 10 ? "0" + d6 : d6));

2.日期格式化

var d = new Date();// 以特定格式显示 星期几 月 日 年
alert(d.toDateString());//以特定格式显示 时分秒 时区
alert(d.toTimeString()); //16:33:30 GMT+0800 (中国标准时间)
alert(d.toLocaleDateString()); //2021/1/6
alert(d.toLocaleTimeString()); //下午4:34:58
alert(d.toUTCString()); // 显示格林威治时间。Wed, 06 Jan 2021 09:01:22 GMT
练习:显示格式为:202116日 星期三 16:48:50
 function showtime() {
        var d = new Date();
        var year = d.getFullYear();
        var month = d.getMonth();
        var date = d.getDate();
        var week = d.getDay();
        var hour = d.getHours();
        var minutes = d.getMinutes();
        var seconds = d.getSeconds();
        document.write(year + "年" + (doubleNum(month + 1)) + "月" + doubleNum(date) + "日 星期" + num2chinese(week) + " " + hour + ":" + doubleNum(minutes) + ":" + doubleNum(seconds))
    }
    // 数字转中文
    function num2chinese(n) {
        var arr = ["日", "一", "二", "三", "四", "五", "六"];
        return arr[n];
    }
    // 给小于10的前面补0
    function doubleNum(n) {
        if (n < 10) {
            return "0" + n;
        } else {
            return n;
        }
    }
    showtime();
1.输入n,输出n天后的时间。
function afterDay(n) {
            var d = new Date();
            d.setDate(d.getDate() + n);
            return d;
        }
        document.write(showTime(afterDay(3)));
2.获取两个日期之间的天数
    var d1 = new Date();
    var d2 = new Date("2021/01/07 19:00");

    function countDays(d1, d2) {
        // var time1 = Date.parse(d1);
        // var time2 = Date.parse(d2);
        Date.parse(d1);
        Date.parse(d2);
        var time = Math.abs(Date.parse(d2) - Date.parse(d1));
        return parseInt(time / 1000 / 60 / 60 / 24);
    }
    document.write(countDays(d1, d2)); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值