javascript 红宝书笔记之如何使用对象 如何操作数组
Posted 礼拜16
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
- 数组默认的方法,操作数组的值
- push() //可以接收任意参数,将参数添加到数组的末尾;
- pop() //从数组的末尾移除最后一项,返回移除的项;
- reverse() //重排序方法
- 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
- slice(起始位置,结束位置) //用于删除、插入、替换
var values = [0,5,12,2,4];
var num1 = values.slice(0,2); //删除数组中的前两项,要删除的第一项的位置和要删除的项数
console.log(num1); //12,2,4
- 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 红宝书笔记之如何使用对象 如何操作数组的主要内容,如果未能解决你的问题,请参考以下文章
javascript 红宝书笔记之函数变量参数作用域与内存问题
《Javascript高级程序设计(第四版)》学习笔记第12章