今天学习JavaSript中引用变量中的Object类型和Array类型:

  1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择;

  • 创建Object实例的方法有两种:

    • 一种是使用new操作符后跟Object构造函数;如下

      var person = new Object();
      
      person.name = "Jan";
      
      person.age =22;
      
    • 另一种是使用对象字面量表示法:

      var person = {
      
        name : “Jan”,
      
      age : 22
      
      };
      
    • 在开发中更多的使用的是对象字面量表示法,因为这种语法要求的代码量少,而且能够给人封装数据的感觉;
    • 对象字面量也是向函数传递大量可选参数的首选方式;
  • 在访问对象属性时,有两种方式:
    • 一种是点表示法:如(person.name)
    • 另一种是方括号表示法;如(person[“name”])如果属性名中包含导致语法错误的字符,或者属性名使用的是关键字或者保留字,适合使用方括号表示法;

  2. Array类型 

  • Js中的数组的每一项可以保存任何类型的数据;
  • 创建数组有两种方式:
    • 第一种使用Array构造函数,也可以省略new;

      var color = new Array();
      
    • 第二种基本方式是使用数字字面量表示法:

      var color = [‘red’,’ blue’];
      
  • 数组的length属性不是只读的,通过该属性,可以从数组的末尾移除项或向数组中添加新项;
  • 在检测数组类型时,Array.isArray()方法好用比instanceof操作符好用;Array.isArray()不考虑检测值是在哪个全局执行环境中创建的(网页中包含多个框架,存在多个不同的全局变量时);
  • 数组的转换方法有:toLocaleString(), toString(), valueOf()和join()方法;
    • 其中join()方法,是根据接收不同的参数作为分隔符来构建字符串;
    • 数组可以表现的像栈(后进先出),利用push()插入,pop()移除;
    • 数组可以表现的像队(先进先出),利用push()插入,shift()移除;
    • 数组可以模拟反方向的队,利用unshift()插入,pop()移除;
    • 数组的排序方法有:reverse(),sort()方法;
      • Reverse()方法会反转数组项的顺序;
      • Sort()方法比较的是字符串,按升序排列数组项;
      • Sort()方法可以接收一个比较函数作为参数,完善对其他基本数据类型的比较;
        function compare(val1, val2) {
        if(val1 > val2){
        return -1;
        }else if(val1 < val2){
        return 1;
        }else{
        return 0;
        }
        }
  • 数组的操作方法有:concat()续接,slice()截取子串, splice()删插换方法;
  • 数组的位置查询方法有:indexOf(), lastIndexOf()方法,一个是从开头向后查找,一个是从尾部向前查找;
  • 数组的迭代方法有:every(), filter(), forEach(), map(), some();

    • Every()和some()方法类似,但前者是每一项都符合传参函数的检验才返回true,后者是只要有一项符合就返回true;
    • Filter()方法是返回在传参函数中为true的项组成的数组;
    • ForEach()和map()方法类似,forEach()没有返回值;
    • 数组的归并方法有:reduce(), reduceRight();这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。不同的是,前者是从开头向最后一项,后者反之;

JavaScript系统学习小结——Object类型、Array类型的更多相关文章

  1. JavaScript系统学习小结——变量、作用域和内存问题

    趁着写完小论文还未彻底消散的学习氛围,开始着重巩固自己JavaScript的基础知识,为秋招做最基本的准备. 变量:Js的变量可能保存两种不同数据类型的值:基本类型值和引用类型值. 基本类型包括:Un ...

  2. JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性

    前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...

  3. javascript深入浅出——学习笔记(包装对象和类型检测)

    3包装对象:https://www.imooc.com/video/5676 当我们尝试把基本类型已对象的方式访问时,javascript会把该基本类型转换为对应的包装类型对象(临时对象),相当于ne ...

  4. 《JavaScript高级程序设计》读书笔记 ---Array 类型

    除了Object 之外,Array 类型恐怕是ECMAScript 中最常用的类型了.而且,ECMAScript 中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript 数组与其他语 ...

  5. python学习小结7:变量类型

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  6. Javascript高级程序设计--读书笔记之Array类型

    1.数组的lenght属性 数组的lenght属性很有特点---他不是只读的,可以同过修改这个属性来向数组的末尾添值加或删除值, 删除值 var color = ["red", & ...

  7. JavaScript基础学习(四)—Object

    一.Object的基本操作 1.对象的创建      在JavaScript中,创建对象的方式有两种:构造函数和对象字面量.      (1)构造函数 var person = new Object( ...

  8. Object类型与Array类型

    总结--JS中的引用类型: Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型, Function类型,RegExp类型,单体内置对象(Global ...

  9. JavaScript引用类型之Array类型一

    一.简介 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.下面就来分析ECMAScript中的数组与其他语言中的数组的异同性: 1.相同点: (1)他们都是数据的有序列 ...

随机推荐

  1. 由 “无法使用从远程表选择的 lob 定位符” 错误而引导出来的一系列问题解决方案

    周一上班遇到一个数据加工问题:无法使用从远程表选择的 lob 定位符,由于数据源表不是自己的,不能对源数据做修改,于是我打起了存储过程的主意 我们公司的存过是分三步走,第一层是同步源数据,第二层是对一 ...

  2. WPF MVVM 架构 Step By Step(4)(添加bindings - 完全去掉后台代码)

    之前的改进已经挺棒的,但是我们现在知道了后台代码的问题,那是否可能把后台代码全部去除呢?这时候就该WPF binding 和 commands 来做的事情了. WPF就是以超吊的binding,com ...

  3. 使用dom4j讲xml字符串递归遍历成Map

    package test; import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import j ...

  4. 【解决】VS2013 + Qt 5.7(5.6适用)使用QSqlDatabase出现“无法解析的外部符号"错误

    原始日期: 2016-08-03 22:09  错误如下: error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscal ...

  5. 简单轻量级的一套JS 类库(RapidDevelopmentFramework.JS)

    1.最近好久没有更新自己的博客了,一直在考虑自己应该写一些什么.4.2日从苏州回到南京的路上感觉自己的内心些崩溃和失落,我就不多说了? 猛然之间我认为自己需要找一下内心的平衡.决定开发属于自己一套快速 ...

  6. 跨域访问之JSONP

    跨域 在平常的工作中常常会遇到A站点的需要访问B站点的资源. 这时就产生了跨域访问. 跨域是指从一个域名的网页去请求另一个域名的资源.浏览器遵循同源策略,不允许A站点的Javascript 读取B站点 ...

  7. 【T-SQL进阶】03.执行计划之旅-1

    到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. T- ...

  8. 编写运行最简单的java程序——使用记事本编写java程序

    第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还没有搭建环境变量的小伙伴请转移到上一篇的随笔中去完成搭建. ...

  9. 关于MongoDB安全事件的一些思考

    刚刚过去的这个周末,各位大数据和数据库从业者想必是被MongoDB的"安全事件"给刷屏了,MongoDB作为当前NoSQL在全球的领军人物,遭到这么大规模的黑客攻击,这也再次让我们 ...

  10. MySQL基础语法命令

    1. 建表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 通用语法: CREATE TABLE table_name (column_name column_type); 实例: ...