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

  • 相关阅读:
    go golang 代码记录
    ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: RECEIVED SIGNAL 15
    hbase启动之后master和regionserver相继自动断掉
    Native memory allocation (malloc) failed to allocate 32744 bytes for ChunkPool::allocate
    虚拟机中二次安装cdh重新启动hadoop集群报错
    cdh在虚拟机中二次安装时无法选择之前管理的主机
    sqoop生成与关系数据库表结构对应的hive表结构,但在hive却找不到table
    Sqoop将hive数据导出到MySQL中文乱码了怎么办?
    idea通过maven打jar包不成功或无法加载主类或打成功也找不到jar包
    一个牛公司的关于oracle数据的面试题
  • 原文地址:https://www.cnblogs.com/pt2017317210423/p/12096678.html
Copyright © 2011-2022 走看看