zoukankan      html  css  js  c++  java
  • JavaScript对象

    JavaScript对象

    1. 概述

    对象Object是js的核心概念,最重要的数据类型,对象就是一种无序的数据集合,由若干键值对(key-value)构成

     

    示例:var o1 = {}; //定义空对象

    var o2 = {name: 'Jim'};//定义name属性的对象

    var o3 = {name: 'Jim', age: 19, gender: '男'};//定义含有3个属性的对象

     

    对象的3个生成方法
    示例:
    var o1={};
    var o2=new Object();
    var o3=Object.create(Object.prototype);

    访问对象成员 :对象.成员

    对象成员遍历: for...in循环用来遍历一个对象的全部属性

    var o={a:1,b:2,c:3};
    for(var i in o){
        console.log([i]);
    //1
    //2
    //3

    1. javaScript的深拷贝

    深拷贝和浅拷贝的区别

    1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用

    2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,“值”而不是“引用”

    为什么要使用深拷贝?

    我们希望在改变新的数组(对象)的时候,不改变原数组(对象)

    深拷贝的要求程度

    我们在使用深拷贝的时候,一定要弄清楚我们对深拷贝的要求程度:是仅“深”拷贝第一层级的对象属性或数组元素还是递归拷贝所有层级的对象属性和数组元素?

    怎么检验深拷贝成功

    改变任意一个新对象/数组中的属性/元素,     都不改变原对象/数组

    3.document 对象

    1、概念

    1)document 对象:对页面的元素进行增、删、改(css属性),查(获取元素)等操作。

    2)document 对象创建元素

    使用document对象创建一个div并挂载到body容器里面,步骤:

    ① 创建一个函数

    ② 在函数里面,调用document创建元素的方法:createElement("元素名称");,并将其赋值给一个变量

    ③ 使用该变量设置元素的css属性:对象名.style.css属性 = "css属性值";

    ④ 将创建的元素并设置了css的元素挂载到父容器里面:document.body.appendChild(对象名)

    document 对象获取(查询)元素

    document.getElementById("id名称");

     document.getElementByClassName("class名称"); document.getElementByTagName("标签名称");

    4.Data 对象

    Date对象用于处理日期和时间。

     

    成员

    作用

    getMinutes()

    获取分钟数,范围0~59

    setMinutes(value)

    设置分钟数

    getSeconds()

    获取秒数,范围0~59

    setSeconds(value)

    设置秒数

    getMilliseconds()

    获取毫秒数,范围0~999

    setMilliseconds(value)

    设置毫秒数

    getTime()

    获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数

    setTime(value)

    通过从1970-01-01 00:00:00计时的毫秒数来设置时间

    Data对象的使用时,toString()方法用来方便查看对象保存的时间信息。

      var date = new Date();            

     // 基于当前时间创建Date对象

      date.toString();       

    // 示例结果:Fri Oct 06 2017 11:53:04 GMT+0800 (中国标准时间)

      date.getFullYear();    // 示例结果:2017

      date.getMonth();       // 示例结果:9

     date.getDate();        // 示例结果:6

    使用Data对象时,可以在创建的时候传入参数指定一个日期:

      // 方式1:分别传入年、月、日、时、分、秒(月的范围是0~11,即真实月份-1)

      var date1 = new Date(2017, 9, 1, 11, 53, 4);

      date1.toString();

      // 返回结果:Sun Oct 01 2017 11:53:04 GMT+0800 (中国标准时间)

      

    // 方式2:通过字符串传入日期和时间

      var date2 = new Date('2017-10-01 11:53:04');

      date2.toString();

       // 返回结果:Sun Oct 01 2017 11:53:04 GMT+0800 (中国标准时间)

    具体演示:

      new Date('2017');        

     // Sun Jan 01 2017 08:00:00 GMT+0800 (中国标准时间)

    (new Date(2017, 9);     

       // Sun Oct 01 2017 00:00:00 GMT+0800 (中国标准时间)

     new Date(2017, -1);      

     // Thu Dec 01 2016 00:00:00 GMT+0800 (中国标准时间)

      new Date(2017, 12);    

       // Mon Jan 01 2018 00:00:00 GMT+0800 (中国标准时间)

     new Date(2017, 0, 0);    

     // Sat Dec 31 2016 00:00:00 GMT+0800 (中国标准时间)

    实例:(年历)

    // calendar()函数,根据指定年份生成`年历。

    function calendar(y) {

        

        // 获取指定年份1月1日的星期数值,保存在变量w中。

        var w = new Date(y, 0).getDay();

       Var  html = ‘ ’;

     return html;

    }

    var d}]}ate = new D

  • 相关阅读:
    leetcode66 plusOne
    park/unpark 阻塞与唤醒线程
    leetcode55 jumpGame贪心算法
    ACID特性与事务的隔离级别
    PCB ODB++(Gerber)图形绘制实现方法
    PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20
    PCB SQL SERVER 位运算应用实例
    PCB SQL SERVER 枚举分割函数(枚举值分解函数)
    PCB SQL SERVER 正则应用实例
    PCB Genesis 外形加内角孔实现方法
  • 原文地址:https://www.cnblogs.com/pt2017317210423/p/12096678.html
Copyright © 2011-2022 走看看