文档章节

Javascript 引用类型Object,Array

专业填坑
 专业填坑
发布于 2017/04/28 17:38
字数 674
阅读 14
收藏 0

Object

var person = new Object();
person.name = 'zhangsan';

Object居然是叫做构造函数,还有一种可以创建Object实例(对象字面量表示法),不会调用Object构造函数

var person = {
    name : 'zhangsan'
}
如何使用属性值
  1. person.name
  2. person["name"]
    以上两种方式都可以,person.name更直观,person["name"]可以用变量访问属性person[variable],或者出现关键字·特殊字符等等,例如 , person["hello world"]

Array

两种创建方式:

var colors = Array();
var colors = []; // 不会调用Array构造函数

需要注意第二种方式,不要这么干var colors = ["red","green",],这样会变成3个长度,有些游览器是2个长度,一定要把最后的逗号去掉

数组长度问题

colors.length可以获取数组长度

var colors = [];
colors[99] = 0;
alert(colors.length); // 此时数组的长度变为100,其它0到98位置的值都是undefined
使用isArray()检测数组,为什么要这样好像是有原因的,但是我不懂,先做个标记吧,以后再看看
一些数组函数的使用:
var colors = ["red", "blue", "green"];
console.log(colors.toString()); // 逗号隔开的字符串
console.log(colors.join(">")); // 以>隔开的字符串,默认是以逗号隔开

var len = colors.push("pike", "black"); // 向数组末尾添加多个元素,返回修改后数组的长度
console.log(colors);
console.log("The length of colors is " + len);

var element = colors.pop(); // 数组末尾移除一个元素,返回被移除的元素
console.log("The last element is " + element2 + " has been removed");

console.log(colors);
var element2 = colors.shift(); // 移除首页元素,返回被移除的元素
console.log("The first element is " + element2 + " has been removed");

var len2 = colors.unshift("organce", "white"); // 向数组头部插入多个元素,返回修改后数组的长度
console.log(colors);
console.log("The length of colors is " + len2);

colors.reverse(); // 反转数组
console.log(colors);
数组排序问题

调用 colors.sort() 可以用来排序,但是sort比较的是字符串,即使是数组元素是数字,也会调用toString()转换为字符串在比较.

var num = [1,5,10,15,20];
num.sort();
console.log(num); // [1, 10, 15, 20, 5] 真的很尴尬

解决方法如下:

function compare(value1, value2)
{
	return value1 - value2;
}
var num = [1,5,10,15,20];
num.sort(compare); // 传递个参数
console.log(num);
复制副本

引用类型复制操作其实是复制指针,如果想要获得一个副本,可以用 concat 方法,如下

var num = [1,5,10,15,20];
var num2 = num.concat();
num[0] = 1237;
console.log(num); // [1237, 5, 10, 15, 20]
console.log(num2); // [1, 5, 10, 15, 20]

concat()方法可以基于当前数 组中的所有项创建一个新数组。具体来说,这个方法会先创建当前数组一个副本,然后将接收到的参数 添加到这个副本的末尾,最后返回新构建的数组。 e.g. var num2 = num.concat( 25, 30, [35, 40] );

© 著作权归作者所有

共有 人打赏支持
专业填坑
粉丝 4
博文 74
码字总数 9463
作品 0
广州
程序员
私信 提问
【摘】【编写可维护的JavaScript】判断javascript中的类型

判断javascript中的类型--编写维护的JavaScript 检测原始值 你希望一个值是字符串、数字、布尔值或undefined,最佳选择是使用typeof运算符 typeof运算符的独特之处在于,将其用于一个未声明的...

jackzlz
2015/08/23
0
0
判断javascript数组的方法

判断javascript数组的方法 var is_array=function(){ return value && } 我们知道,javascript是一种弱类型的语言,并且,javascript中的一切实质上都是对象。那么,在javascript中如何进行对...

首席xx师
2013/06/06
0
2
JavaScript之数据类型

前言 JavaScript一共有6中数据类型: 基本数据类型(5):字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、空(Null)、未定义(Undefined) 复杂数据类型(1):对象(Object...

苦读代码
08/15
0
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
0
0
JS typeof 与 instanceof

JS中常用来判定变量类型的两个函数为 typeof 和 instanceof typeof 的结果有 undefined, number, boolean, string, function, object[null, Array,String,Date.....] 要注意的地方是 typeof......

big_cat
2015/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux脚本中父shell与子shell 执行的几种方式

本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell 1. source filename or . filename 不创建sub...

问题终结者
5分钟前
0
0
git简单操作

1、 git init 初始化仓库 git add 1.txt 添加文件 git commit -m ”commit” 提交更新,添加注释 git status 查看仓库状态 git log 查看日志 //修改文件后提交更新 git diff 查看有哪些修改 ...

xiaobai1315
9分钟前
0
0
基于vue的Element-ui定义自己的select组件

基于vue的Element-ui定义自己的select组件 <template> <div> <el-select v-model="svalue" placeholder="请选择" filterable> <el-option v-for="item in options"......

莫沫达
11分钟前
0
0
对象检测(object detection)算法图解

摘要: 本文简要介绍图像检测中常用的深度学习方法——RCNN家族系列算法,以图像讲解形式,便于理解。 在生活中,经常会遇到这样的一种情况,上班要出门的时候,突然找不到一件东西了,比如钥...

阿里云官方博客
12分钟前
0
0
计算机通信协议学习-Http

HTTP协议: 引用:http://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web)服务...

xiaoyaoyoufang
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部