对象object,Math对象(运算的方法),Date日期对象方法

回顾:八大类型
基础类型
number(数值)
string(字符串)
boolean(布尔值)
null(空)
undefined(未定义)

引用类型
数组 array
函数function
对象Object

对象

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

对象的行为------js对象的函数
对象的特征------js对象的属性

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

创建一个对象

1.使用new Object关键字类创建

<script>
        var  hero = new Object();//创建一个空对象
        hero.figure = "虞姬";
        alert( hero.figure);
    </script>

在这里插入图片描述
使用Object对象的create方法创建(了解即可)
var 对象名=Object.create(参考对象)

 <script>
        var obj = Object.create(null); //创建一个空对象
        console.log(obj); //{}
        obj.name = '张三';
        console.log(obj);// {name: "张三"};
    </script>
<script>
        var obj = {
    
    
            uname: "张三"
        };
        var obj1 = Object.create(obj);//等同于这种效果 var obj1 =obj;
        console.log(obj1.uname);
    </script>

1.1新增属性

  <script>
        var hero = new Object();创建一个空对象
        hero.figure = "虞姬";
        hero.name = "韩信";
        hero["age"] = "30";注意这里是字符串
        alert(hero["age"]);
    </script>

在这里插入图片描述

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

hero.name//韩信
例如上面就能获取到name值

使用 字面量 形式 {} 关键字类创建(重要)

var 对象名={};//空对象
var 对象名={
键:值,
键:值,
};
赋值: 对象名.键=值(如果值存在,表示修改数据,如果值不存在表示添加数据)

<script>
        var obj = {
    
    }; //创建一个空对象
        console.log(obj);// {
    
    }
        obj.uname = "张三";
        console.log(obj); // {
    
    uname: "张三"}
    </script>
<script>
        //非空对象,(键都是字符串,值可以是六种数据中任意一种)
        var obj = {
    
    
            uname: "张三", //字符串
            uage: 18, //数值
            islike: true, //布尔值
            sayhello: function() {
    
     //函数
                console.log("HELLO..")
            },
            cate: ['大猫', '小猫'], //数组
            dog: {
    
     //对象
                name: '张二狗',
                age: 1
            }

        }
        console.log(obj); //{uname: "张三", uage: 18, islike: true, cate: Array(2), sayhello: ƒ, …}
        obj.sayhello(); //HELLO..   方法调用模式
    </script>
<script>    
        var hero ={
    
    ming:"虞姬",age:"18"};//定义一个对象
        console.log(hero.age)//18
        //获取方式-对象名->属性名(就能拿到里面的值)
    </script>

3 遍历属性

for…in 语句用于对数组或者对象的属性进行循环操作。

for … in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作

   for (变量 in 对象)
{
    
    
    在此执行代码
}
 <script>
        var hero ={
    
    };//创建一个对象
        hero.age = function () {
    
    
          document.write("虞姬");
            document.write("亚瑟");     
        }
        hero.age();//调用
        for(var key in hero){
    
    
             console.log(hero);//虞姬-亚瑟
        }
    </script>

在这里插入图片描述

4 删除属性
delete 对象名.属性名

<script>
        var hero = {
    
    };
        hero.age = "虞姬";
        hero.age2 = "亚瑟";
        delete (hero.age);
        alert(hero.age);
    </script>

在这里插入图片描述

对象的分类

1.内建对象
由ES标准定义的对象,在任何ES实现中都可以使用 js提供的对象
Math(提供运算的方法)
Date(创建日期对象)
String (字符串)
Number (数值)
Boolean(布尔值)
Function(函数)
Object(对象)

2.宿主对象
主要有浏览器提供的对象。
BOM DOM
3.自定义对象
开发人员自己定义的对象。

基本类型与引用类型的区别

区别:
基础数据类型的数据存储在栈中,变量直接指向的是基础数据类型的值。
引用数据类型的数据存储在堆中,变量指向的是引用数据类型的地址。

在这里插入图片描述

比较:
基本数据类型比较时,比较值。
而引用数据类型比较时,比较内存地址,如果内存地址相同,指向了同一个对象,则相等,否则不相等。

<script>
         var hero={
    
    
            "yi":"亚索",
             "er":"狂风绝息斩"
         }
         var  hero2=hero;
         alert(hero2==hero);
    </script>

在这里插入图片描述

<script>
         var hero={
    
    
            "hName":"亚索",
            "R":"狂风绝息斩"
        }
        var hero2={
    
    
            "hName":"亚索",
            "R":"狂风绝息斩"
        }
       alert(hero2 == hero) ;
    </script>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

取一位(或n位)小数

<script>
    var num = 2.446242342;
    num = num.toFixed(3);//保留3位,最后一位遵循4舍5入
    document.write(num);//输出2.446
</script>

内置对象(string)

charAt(m) 返回指定位置的字符
indexOf(m) 返回指定字符串的位置,从左到右,找不到返回-1
substr(m, n)返回给定字符串中从m位置开始,取n个字符,如果参数n省略,则意味着取到字符串末尾
substring(m, n)返回给定字符串中从m位置开始,到n位置结束,如果参数n省略,则意味着取到字符串末
toLowerCase()将字符串中的字符全部转化成小写
toLocaleUpperCase()将字符串中的字符全部转化成大写

 <script>
        var str = "1a2b3c4D5v";
        console.log(str.charAt(5)); //c
        console.log(str.indexOf("a")); //1
        console.log(str.substr(1, 3)); //a2b
        console.log(str.substring(1, 3)); //a2
        console.log(str.toLowerCase()); //1a2b3c4d5v
        console.log(str.toLocaleUpperCase()); //1A2B3C4D5V
        console.log(str.length); //10
    </script>

Math对象(运算的方法)

提供了很多关于运算的方法。

Math.random(); 返回0-1之间的随机数。

<script>
         Math.random(); 返回0-1之间的随机数。
        这里表示2到7    但7的概率最小
        本来是0到5
        现在0+2   5+2
        表示2    到7
        var yi =    parseInt( Math.random()*5 +2 )  ;

        document.write(yi);
    </script>   

假如我们需要一个n-m之间的数。
Math.round(Math.random()*(m-n)+n)
Math.floor(Math.random() * (m - n + 1) + n);

Math.round()四舍五入
Math.max() 返回最大值。
Math.min() 返回最小值
Math.abs() 返回绝对值
Math.ceil()向上取整
Math.floor() 向下取值
在这里插入图片描述

<script>
        var str = 3.14;
        console.log(Math.round(str)); //3
        console.log(Math.max(str)); //3.14
        console.log(Math.min(str)); //3.14
        console.log(Math.abs(str)); //3.14
        console.log(Math.ceil(str)); //4
        console.log(Math.floor(str)); //3
    </script>

Math.pow(x,y) x的y次方
Math.sqrt(num) 开平方

Math.PI = 180° 弧度。
1弧度=Math.PI/180.

Date() 创建日期对象

创建日期对象。
Wed Jan 06 2021 14:38:02 GMT+0800 (中国标准时间)
星期 月 日 年 时分秒 时区
创建日期对象是,可以指定日期。时分秒若不填写,则默认为00:00:00

指定日期的几种方式:
自己设定 1.new Date(“2021/01/07”)
== 注意,只有这种写法(字符串),这里面的一月才是我们中国的一月==

 var date = new Date("2021-01-08 9:36:10");

2.new Date(2020,09,30,15,33,20);这里面的9月是8月
3.new Date(1576800000000);

   var data = new Date(2021, 2, 6, 16, 30, 00);自定义格林威治时间
  var data = new Date("2021-03-06 16:30:00");//自定义北京时间
        在国外,月份是从0开始的,0-11

var d =new Date(); 这个行为是调用构造函数 构造函数的作用:生成对象。

<script>
        var d =new Date();
        document.write(d);
    </script>

输出现在的时间
在这里插入图片描述

Date日期对象方法

格式:Date.parse(日期对象);
功能:将日期对象转为毫秒数。
1秒等于1000毫秒

d.getTime() 获取当前的毫秒数。
d.getDate() 返回日
d.getDay() 返回周几。

d.getFullYear() 返回年
d.getMonth() 获取月份 从0开始 范围为:0-11
d.getHours() 获取小时数
d.getMinutes() 获取分钟数
d.getSeconds() 获取秒数
d.getMilliseconds() 获取毫秒数
d.getTimezoneOffset() 获取本地时间与格林威治时间的分钟差。

获取

 <script>
        var d =new Date();
         //var d2=d.getTime();获取当前的毫秒数。
        // var d2=d.getDate();返回日
        //  var d2=d.getDay();返回周几
        //  var d2=d.getMonth();获取月份 从0开始  范围为:0-11
          var d2=d.getFullYear();
          //返回年
        //  var d2=d.getHours();获取小时数
        document.write(d2);
    </script>
 <script>
        var d = new Date();
        // 以特定格式显示 星期几 月 日 年
       // alert(d.toDateString());//Thu Jan 21 2021
        // 以特定格式显示 时分秒 时区
        // alert(d.toTimeString());//16:33:30 GMT+0800 (中国标准时间)
        // alert(d.toLocaleDateString());//2021/1/6
         //alert(d.toLocaleTimeString());//下午4:34:58
         //alert(d.toUTCString());//显示格林威治时间。Thu, 21 Jan 2021 11:53:55 GMT
    </script>
    var now = new Date();
    console.log(now);//Sat Mar 06 2021 15:37:19 GMT+0800 (中国标准时间)
    console.log( now.toUTCString());//Sat, 06 Mar 2021 07:37:19 GMT

在这里插入图片描述
设置日期:
setDate() 设置日期的天数。
setMonth() 设置月份
d.setFullYear() 设置日期的年份
d.setHours() 设置小时数
d.setMinutes() 设置分钟数
d.setSeconds() 设置秒数
d.setMilliseconds() 设置毫秒数

<script>
         var d =new Date( 2021,2,23   );
         var d2=d.setMonth(2);
        document.write(d);
    </script>

在这里插入图片描述

毫秒数转换天/时/分/秒方法

// mss代表毫秒数
        var days = parseInt(mss / (1000 * 60 * 60 * 24));//天
        var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));//小时
        var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));//分钟
        var seconds = (mss % (1000 * 60)) / 1000;//秒

求时间差须知
时间相减, 可以直接拿日期相减 不用先转毫秒数在相减,—>减完之后的数值就是毫秒数

<script>
    // var data = new Date(2021, 2, 6, 17,55, 00);//自定义格林威治时间
    var data = new Date("2021-03-06 17:55:00");//自定义北京时间
    var now = new Date();//现在时间
    var jian = data - now;
    console.log(jian);// 3096148
</script>

综合案例

以特定格式显示 星期几 月 日 年

<script>
        function showTime() {
    
    
            var d = new Date();
            // d.setDate(3);
            // 获取年
            var year = d.getFullYear();
            // 获取月
            var month = d.getMonth()+1;
            // 获取日
            var date = d.getDate();
            // 小时数
            var hours = d.getHours();
            // 获取分钟数
            var m = d.getMinutes();
            // 获取秒数
            var seconds = d.getSeconds();
            // 获取星期几
            var day = d.getDay();
            var str = year + "年" + doubleNum(month) +"月"+doubleNum(date)+"日 
             星期"+num2Chinese(day)+" "+hours+":"+m+":"+seconds;
            return str;
        }
        // 数字转中文
        function num2Chinese(num) {
    
    
            var arr = ["日","一","二","三","四","五","六"];
            return arr[num];
        }
        // 给小于10的前面补0(也可以用三元运算符)
        function doubleNum(n) {
    
    
            if(n<10){
    
    
                return "0"+n;
            }else{
    
    
                return n
            }
        }
        var d = showTime();
        document.write(d);
    </script>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/z18237613052/article/details/112259602
今日推荐