关于js对象的一些理解

Posted 傻fufu的小陶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于js对象的一些理解相关的知识,希望对你有一定的参考价值。

对象

数组可以存放多个数据,但是对每个数据的描述不够详细

对象:对一个或一类事物特征和行为的描述(object)
对象是以键值对形式存在的数据

注意:数组也是一个特殊的对象 数组(下标:值) 对象(键名:值)

创建方法:(1)字面量创建=>快捷创建
var obj = {};//空对象

(2)构造函数创建(实例化对象)new Object()

var obj = new Object();//空对象
 var obj = new Object({
          
//"name":"陶陶",
//"class":"2105",
//"chinese":66,
//"math":76, 
  name: "陶陶",
  //name=>键名(属性名 本质:字符串,可以省略引号)"张三"=>键值(属性值 可以是任意类型)
 class: "2105",
 chinese: 66,
 math: 76,
 say: function () {
 console.log("hello everyone")
   }
});//有内容的对象
// obj的属性要加的.或者[],不然就是window的属性了
console.log(obj["name"]); 
console.log(obj.name);
obj.say();

对象的特性:
(1)对象是以键值对形式存在的数据(排名不分先后)

(2)对应键名取值和赋值
a.点语法 对象.属性名 => 快捷取值
b.中括号语法 对象[“属性名”] => 一遍配合变量和for…in循环使用

注意:
对象取值 取一个不存在属性名 => undefined
对象赋值 赋值 一个不存在的属性名 => 新增该属性到对象中

 var zhang = {
        name: "张三",
        class: "2105",
        chinese: 55,
        english: 77,
        math: 66,
        isStudy: true,
        hobby: ["唱歌", "跳舞", "学习"],
        say: function () {
            console.log("hello");
        }
    }
    console.log(zhang);


    // a. 点语法 
    // 取值
    // console.log(zhang.name);
    // console.log(zhang.class);
    // console.log(zhang.chinese);
    // console.log(zhang.math);
    // console.log(zhang.hobby);
    // console.log(zhang.say);
    // zhang.say();

    // console.log(zhang.heihei);    // 对象取值去一个不存在属性名 =>undefined 

    // 赋值
    // zhang.name = "李四";
    // zhang.class = "H5-2105";

    // zhang.heihei = "嘿嘿";   // 对象赋值一个不存在的属性名  => 新增该属性到对象中

    // console.log(zhang);


    // b. 中括号语法
    // 取值
    // console.log(zhang["name"]);
    // console.log(zhang["class"]);
    // console.log(zhang["chinese"]);
    // console.log(zhang["math"]);
    // console.log(zhang["hobby"]);
    // console.log(zhang["say"]);
    // zhang["say"]();

    // console.log(zhang["heihei"]);

    // 赋值
    // zhang["name"] = "李四"
    // zhang["class"] = "H5-2105";
    // console.log(zhang);

(3) 可以被循环遍历 for…in

 // 循环遍历 
    for (var key in zhang) {
        //key变量 =>存的是 键名(字符串)    "name" "class" "english"
        console.log(key, zhang[key]);  //  zhang[key]  => zhang["name"]
        console.log(key, zhang.key); //错误写法,key是一个变量,不是键名,只能用[]语法
     }

    // for...of 报错
    // for (var val of zhang) {
    //     console.log(val);
    // }

日期对象的创建方式:
1.无参 当前时间
2.数字单参 1970.1.1 开始往后计算的都是毫秒数
3.数字多参 2020,1,1,1,1,1 月份从0开始,时间会自动计算
4.字符串单参 '202211 1:1:1’时间是正常的,不计算 时间错误则Invalid date

时间对象的获取方式:
获取/设置年月日
getFullYear()/setFullYear(2014)
getMonth()/setMonth(8)
注意:获取月份是从0开始的

getDate()/setDate(25)
获取/星期几
getDay() 0-6
获取/设置时分秒
getHours()
getMinutes()
getSeconds()

var date = new Date();//创建当前日期对象
 var year = date.getFullYear();//获取当前年
        console.log(year);
 var month = date.getMonth()+1;//获取当前月
        console.log(month);
 var day = date.getDate();//获取当前日
        console.log(day);
 var week = date.getDay();//获取当前周
        console.log(week);
var hour = date.getHours();//获取当前小时
        console.log(hour);
var minute = date.getMinutes();//获取当前分
        console.log(minute);
var second = date.getSeconds();//获取当前秒
        console.log(second);

getTime()/setTime()
getTime获取某个日期自1970年1.1以来的毫秒数
setTime修改日期的毫秒数,对应的日期时间也会修改

var d = new Date();  d.setTime(56521211021);
// 时间戳  获取1970.1.1  至今的毫秒数
        var time = date.getTime();
        console.log(time);
 //格式化日期的函数封装
  function formatdate(time) {
            var date = new Date(time);
            var year = date.getFullYear();
            var month = date.getMonth();
            var day = date.getDate();
            var week = date.getDay();
            var hour = date.getHours();
            var minute = date.getMinutes();
            var second = date.getSeconds();
            var arr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
            return year + "/" + month + "/" + day + "  " + hour + ":" + minute + ":" + second + "  " + arr[week]
        }
        formatdate(new Date());
        console.log(formatdate(new Date()));

以上是关于关于js对象的一些理解的主要内容,如果未能解决你的问题,请参考以下文章

关于js对象的一些理解

几个关于js数组方法reduce的经典片段

关于CSS的个人理解

js 原型理解(原型对象)

关于片段生命周期

关于js闭包的一些浅层面的理解