对象定义  ===  引用类型,描述的是一类对象所具有的属性和方法
 
 
  • 新对象的创建 方法
   
new + 构造函数       var person = new Object();
对象字面量表示       var person = {};                    
 
备注:  新对象的创建方法,大多采用对象字面量的创建方法,这种方法能够给人封装数据的感觉。实际上,对象字面量也是向函数传递大量可选数据的首选 方式。
 
  • 访问对象属性 方法
 
访问对象属性使用的都是 点 表示法:     console.log(person.name);        
访问对象属性还可以使用 方括号 表示法:      console.log(serson["name"]);
 
备注:  方括号访问对象,主要优点是可以通过变量来访问属性。建议使用 点 表示法来访问对象。
 
  • 给对象添加属性
 
给对象添加属性的方法:通过为对象赋值,向巳有对象添加新属性。
 
var person = {};
person.lastName = "chen";
person.age = "56";
 
lastName,age   这些就是对象的属性,通过给这些属性赋值,理解向巳有的对象添加新属性。
 
  •  操作对象的方法
 
循环遍历对象的属性: for...in 语句
 
for(对象中的某个变量 in 对象名称){要执行的代码}
 
var person = {list:{name: "kevin", age: 56},{name: "page", age: 26}};
var x;
var txt = "";
 
for(x in person){
     txt += person[x];
}
 
console.log(txt);   
 
  • 废除对象的方法
 
把对象的值,设为null。可以强制的把对象废除,null为一个空的对象。
每用完一个对象后,就将其废除,释放对象。这里的废除只是这个对象只有一个引用的时候,如果有多个引用,要小心的操作,因为这样会把所有的引用都设为null;
 
 
 
  • 数组的创建 方法
 
new + 构造函数         var sum = new Array();
省略new               var sum = Array();
数组字面量表示        var sum = [];
 
  • 数组在创建中 赋值
 
var sum = new Array(10);                         //lenght 值为10的数组  
var sum = new Array("10");                       //创建一个字符串数组    
var sum = Array("red", "blue", "green");         //创建3个字符串的数组  
var sum = [];                                    //创建一个空数组       
var sum = [1,2];                                 //不允许这样创建数组  
var sum = [,,,,,,,,];                            //不允许这样创建数组 
 
  • 读取数组
 
console.log(sum[0]);                              //读取数组sum数组中第一个值,方括号中的数字是要访问的值
 
  • 检测数组
 
Array.isArray()                                   //这个方法的目的是最终确定某个值到底是不是数组
 
if(sum.isArray(value)){
     //对数组进行操作...
}
 
  • 数组转换方法
 
toString();                                       //以字符串的形式,返回数组中的每个值
valueOf();                                           //返回的还是数组
join('|');                                       //将返回的数组以 | 分隔,如果不给这个方法传递任何值,则以逗号分隔
 
var color = ['red', 'green', 'black'];            
console.log(color.toString());                    //red,green,black
console.log(color.valueOf());                     //[red,green,black]
console.log(color.join('|'));                     //red | green | black
 
  • 数组默认的方法,操作数组的值
 
  1. push()                                      //可以接收任意参数,将参数添加到数组的末尾;
  2. pop()                                          //从数组的末尾移除最后一项,返回移除的项;
  3. reverse()                                      //重排序方法
  4. sort()                                     //排序方法
          var values = [0,5,12,2,4];
          function bijiao(value1, value2){        //比较函数
               if(value1 < value2){
                   return -1; 
               }else if(value1 > value2){
                    return 1;
               }else{
                    return 0;
               }
          }
          values.sort(bijiao);                    //给排序方法传入比较函数,返回的值为:0,2,4,5,12
  1. slice(起始位置,结束位置)                    //用于删除、插入、替换
          var values = [0,5,12,2,4];
          var num1 = values.slice(0,2);           //删除数组中的前两项,要删除的第一项的位置和要删除的项数
          console.log(num1);                      //12,2,4
  1. concat()                                    //用于连接两个或多个数组返回一个数组副本
          var num = [2,3];
          console.log(num.concat(4,5));            //2,3,4,5
 
  • 数组的迭代方法
 
每个数组有 5 个迭代方法。
每个方法接收 2 个参数:传入的函数、该函数的作用域的对象 this 的值。
传入的函数接收 3 个参数:数组的值(item)、该项在数组中的位置(index)、数组对象本身(array)。
 
以下是所有的方法以及作用:
  • every() 和 some()  这两个方法都是用于查询数组中的项是否满足某个条件。它们唯一的区别是:
          every(函数参数)  这个函数参数必须对每一项都返回true,这个方法才会返回true;
          some(函数参数)   这个函数参数对某一项为true,这个方法就是true;
 
  • filter(函数参数)    这个函数参数对某一项返回为true,返回为true的这一项的数组
  • forEech(函数参数)   这个方法没有返回值
  • map(函数参数)       返回每次函数调用的结果而组成的新的数组  
    
var num = [1,2,4,5,8,6,2,1];
var mapResult = num.map(function(item,index,array){               //map的 参数是一个函数,这个函数接收3个参数,分别是item,index,array
     return (item > 2);                                           //运行函数的条件
});
 
console.log(mapResult);          //4,5,8,6                        返回调用这个函数的结果而组成的新的数组;
 
 
  • 遍历数组
 
JS遍历数组的方法有两种:
 
  • for 循环
     var num = [5,15,6];
     for(var i = 0; i < num.length; i++){
          console.log(num[i] + ",");                          //5,15,6
     }
  • for...in
     var num = [5,15,6];
     for(var i in num){
          console.log(num[i] + ",");                           //5,15,6
     }

javascript 红宝书笔记之如何使用对象 如何操作数组的更多相关文章

  1. javascript 红宝书笔记之函数、变量、参数、作用域

    ECMAScript 不介意传进来多少个参数,也不介意传进来的参数类型.     理解参数:      命名的参数只提供便利,不是必需的.     ECMAScript 的变量包含两种不同的数据类型的 ...

  2. javascript 红宝书笔记之操作日期

    创建当日 日期对象   调用Date的构造函数而不传递参数的情况下,新创建的对象默认获取当前的日期和时间.   var now = new Date();   创建特定的日期和时间对象   Date. ...

  3. javascript 红宝书笔记之数据类型

      typeof   检测给定变量的数据类型,通过typeof来区分函数和其它对象   var message = 'some string'; console.log(typeof(message) ...

  4. JS红宝书笔记——第一章 JavaScript简介

    1.JavaScript简史 Netscape公司决定开发一种客户端语言用来处理浏览器端简单的表单验证. Netscape公司派布兰登·艾奇(BrendanEich)为计划于1995年2月发布的Net ...

  5. 第5章 引用类型---JS红宝书书摘系列笔记

    在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,描述的是一类对象所具有的属性和方法.而对象是某个特定引用类型的实例. 一.Object类型 可以通过Object构造函数创 ...

  6. 【转载】关于在vs2013中配置opengl红宝书第八版环境

     本文为转载 原文地址 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版 ...

  7. 从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,

    1.使用教程:OpenGL红宝书第8版 2.使用的库工具:GLEW和GLFW 3.使用的IDE:vs2012 4.说说目的:完整的看一遍OpenGL,加深印象并且熟练掌握运用OpenGL 5.欢迎有相 ...

  8. OpenGl编程指南第7版(红宝书)环境配制

    环境 OS:win7 旗舰版SP1 64位 编译器: VS 2013 express 的cl 软件 glut. 在这个页面https://www.opengl.org/resources/librar ...

  9. [转] VS2015中跑OpenGL红宝书第八版的第一章示例代码,运行

    Ori Article Link OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资 ...

随机推荐

  1. Java开发之JSP指令

    一.page指令 page指令是最常用的指令,用来说明JSP页面的属性等.JSP指令的多个属性可以写在一个page指令里,也可以写在多个指令里.但需要注意的是,无论在哪个page指令里的属性,任何pa ...

  2. Android 实现页面的延时跳转

    Android APP在初次使用的时候往往会出现APP的首页标志,然后几秒之后进入导航页,今天就记录一下,首页的延时跳转的两种方法: 第一种使用Handler延时跳转,在onCreate的方法中加入一 ...

  3. java中有类似C#里ref或out的功能吗?

    JAVA中都是值传递.JAVA中的“引用”和C++中的引用有本质的区别,倒是和C++中的指针非常类似.可以将JAVA的引用理解为“不支持指针运算的指针”.所以可以说JAVA中其实并不存在真正的引用,所 ...

  4. oracle批量update 转

    需求: 将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表. 1.错误的写法: update table_name t1 set (a,b,c)=( select a,b, ...

  5. webpack常用加载器和插件

    css文件加载器: style-loader,css-loader,sass-loader,less-loader //style和css加载器必须放在一起使用,且style必须放前面(style!c ...

  6. childNodes的兼容性问题

    元素.childNodes:只读 属性 子节点列表集合 标准浏览器下:包含文本和元素类型节点,也会包含非法嵌套的子节点 非标准浏览器下:只包含元素类型节点,ie7下不会包含非法嵌套的子节点 child ...

  7. iOS多线程杂论

    iOS多线程的分布 (1) NSThread (2) NSOperation (3) GCD 现在对下面三个进行一个个的分析,希望那里说得不对的地方希望简友们帮我指点一二. 1,NSThread 优点 ...

  8. PAT 1027. 打印沙漏(20)

    本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓"沙漏形状",是指每行 ...

  9. Java核心技术点之内部类

    1. 为什么要使用内部类     内部类就是定义在一个类内部的类,那么为什么要使用内部类呢?主要原因有以下几点:第一,内部类中定义的方法能访问到它所在外部类的私有属性及方法:第二,外部类无法实现对同一 ...

  10. There is no ‘Animation’ attached to the “Player” game object

    There is no ‘Animation’ attached to the “Player” game object 在照着龚老师的Unity3D投篮游戏视频教程练习时,遇到这个错误提示. 我知道 ...