javascript 红宝书笔记之如何使用对象 如何操作数组

对象定义  ===  引用类型,描述的是一类对象所具有的属性和方法

  • 新对象的创建 方法

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

}

时间: 2024-10-23 07:17:09

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

javascript 红宝书笔记之函数、变量、参数、作用域与内存问题

ECMAScript 不介意传进来多少个参数,也不介意传进来的参数类型. 理解参数: 命名的参数只提供便利,不是必需的. ECMAScript 的变量包含两种不同的数据类型的值.分别是 简单的数据构成的基本数据型值,不能给基本型值添加属性: var name = "kevin"; name.age = 27; console.log(name.age);     //undefined 多个值构成的对象,引用类型值.引用类型的值,可以添加动态属性,并可以改变这个动态属性的值或者可以删除

javascript 红宝书笔记之操作日期

创建当日 日期对象 调用Date的构造函数而不传递参数的情况下,新创建的对象默认获取当前的日期和时间. var now = new Date(); 创建特定的日期和时间对象 Date.parse("表示日期的字符串");                    //该方法接收一个表示日期的字符串参数,根据这个字符串会返回相应的日期格式:如果这个字符串不能表示日期,则会返回NAN. var nowDate = new Date(Date.parse("May 25, 2001&q

javascript 红宝书笔记

typeof   检测给定变量的数据类型,通过typeof来区分函数和其它对象 var message = 'some string'; console.log(typeof(message));     // "string" console.log(typeof(null));   // "Object" 特殊的返回值,因为null被认为是一个空的对象引用. 注意: 尚未声明过的变量,只能进行一项操作,就是使用typeof检测它的数据类型 Undefined  

OPENGL 红宝书实验笔记

第一个程序triangles的配置过程,原文链接. OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资料终于跑起来了,记录一下 一.环境搭建指南 书中的地址 http://www.opengl-redbook.com/ 去这里打包下载OpenGL红宝书的示例代码,解压后是这样 虽然没有第一章的代码但第一章的内容好歹算一个完整的例子,网上各种环境搭建教程也都以第一章的代码为例,我们就

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

 本文为转载 原文地址 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版, 第一个例子研究了一段时间终于可以运行了,不知道有没有童鞋跟我遇到一样的问题. 下面说说我怎么配置的: 首先去 http://www.opengl-redbook.com/ 下载红宝书的源代码,解压得到这个 然后打开vs2013新建一个空的win32控制台项目, 然后点项目右键属性,点击vc++目

VS2012通过makefile编译OpenGL红宝书的示例代码

> 通过创建新VC项目,然后设置一堆属性,对于懒人来说还是太复杂了.既然它自带了makefile,可以尝试下使用nmake. 需要注意的是VS2012的安装目录里面已经没有GL的头文件和库文件.这个改动应该在VS2010或者更早就已经采用了. 现在有了VS SDK.VS2010自动的SDK目录是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A,更高的版本可能使用v8.0.v8.0A,反正都在这个目录下面.这个目录下面有include.lib文

熬了多少个夜晚,大家期待的《网络工程师思科华为华三实战案例红宝书》即网工必备技术命令大全版本1完书

熬了多少个夜晚,最近也没空更新博客.军哥编写的大家期待的<网络工程师思科华为华三实战案例红宝书>即网工必备技术命令大全版本1完书,一本融合了思科华为华三的实战型辅导书(辅助乾颐堂QCNA课程的).不多说上图 目录关于作者 2本书读者和笔者心语 3本书内容和结构 4第1部分 网络实施基础 15案例0 模拟器的部署和连接管理 16学习利器模拟器简书 160.1 华为模拟器Ensp部署 160.2 思科模拟器EVE部署 310.3 部署SecureCrt管理网络设备 400.3.1 部署终端管理软件

js红宝书总结笔记

一.JS的简介: 1.宿主环境:浏览器.node.adobe flash; 2.DOM(文档对象模型)是针对 XML 但经过扩展用于 HTML 的应用程序编程接口(API): DOM0级:即DHTML:    DOM1级:主要映射文档结构: DOM2级:增加视图,样式,事件,遍历和范围: DOM3级:增加验证等方法: 3.BOM(浏览器对象模型) 二.在html中使用js 1.script的属性:defer(html4.01):脚本延迟至页面加载完成后执行:async(html5):不必等待脚本

红宝书 ECMAScript笔记

HTML中使用JS .基本概念 今天的JavaScript拥有了闭包.匿名函数.元编程等特性.它简单又复杂! 组成要素: 文档模式 严格模式 顶部加   关键字和保留字 关键字: 保留字: 函数内部的变量如何当作全局变量使用:(曾经要用到这个知识当时找不到答案)但是不推荐. typeof操作符 前置 与 后置的区别: ==(数值)与===(数值+类型)的区别 不允许用with 所有变量必须声明, 赋值给为声明的变量报错,而不是隐式创建全局变量. eval中的代码不能创建eval所在作用域下的变量