Object类型与Array类型
总结--JS中的引用类型:
Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型,
Function类型,RegExp类型,单体内置对象(Global对象,Math对象)
1.Object类型:我们看到的大多数其他对象都可以称为是Object对象
1)创建Object对象的方式有两种:
第一种是使用new操作符后跟Object构造函数
var person =new Object(); //var person ={};
person.name="yufan";
person.age=20;
第二种是使用对象字面量表示法
var person={
name:'yufan',
age:20
};
2)访问对象的属性也有两种方法:
alert(person['name']);
alert(person.name);
2.Array类型:
1)创建数组(Array对象)的基本方法有两种:
--第一种是使用Array构造数组
var arr=new Array('1',2,'32','ab');
--第二种是使用数组字面量表示法
var arr=['1',2,'32','ab'];
2)数组的length属性,表示数组元素的个数
对于length既可以获取,又可以设置
var arr=[1,2,3,4,5,6]
alert(arr.length); //6
arr.length=3;
alert(arr); //1,2,3
3)检测数组:Array.isArray()==>确定某个值是不是数组
--if(Array.isArray(value)){
//对数组执行某些操作
}
注:支持Array.isArray()方法的浏览器有IE9+,Firefox 4+,Safari 5+,Opera 10.5+,Chrome
数组的方法:
4)转换方法:对于所有的对象都具有toLocaleString(),toString(),valueOf()方法
数组调用toString()方法:调用了数组每一项的toString()方法,返回数组每一项以逗号分割的字符串
数组调用valueOf方法:返回的还是数组对象的原始值
var arr=[1,2,'abc'];
alert(arr.toString()); //1,2,abc
alert(arr.valueOf()); //1,2,abc
alert(typeof(arr.toString())); //string
alert(typeof(arr.valueOf())); //object
alert(arr); //1,2,abc alert要接收字符串参数,所以它会在后台调用toString()方法,结果与toString()方法相同
数组调用toLocaleString()方法(把数组转换为本地字符串):返回与toString(),valueOf()方法相同的值
但其调用的是数组每一项的toLocaleString()方法,返回数组每一项以逗号分割的字符串
var arr=[1,2,'abc'];
alert(arr.toLocaleString()); //1,2,abc
var person1={
toLocaleString:function(){
return 'mike';
},
toString:function(){
return 'nine';
}
};
var person2={
toLocaleString:function(){
teturn 'hello';
},
toString:function(){
return 'word';
}
};
var people=[person1,person2];
alert(people); //nine,word
alert(people.toString()); //nine,word
alert(people.toLocaleString()); //mike,hello
5)数组的join方法:
--用分隔符,组合数组元素,生成字符串
arr.join('-') //1-2-3-4-5-6
6)数组的添加:(栈方法)
--arr.push(val)--往数组的末尾添加,返回新数组的长度
--arr.unshift(val)--从数组的头部添加元素,返回新数组的长度
7)数组的删除:()
--arr.pop()--从数组的末尾删除,返回删除的项
--arr.shift()--从数组的头部删除元素,返回删除的项
8)数组的排序(sort):
--arr.reverse()--颠倒数组中元素的顺序
--字符串的排序:arr.sort()--sort()方法会调用每个数组项的toString方法,
然后比较得到的字符串,因此不能对数字进行排序,但可以对字符串排序
var arr=['zoom','banana','apple']
arr.sort(); //apple,banana,zoom
--数字的排序:sort()方法可以接受一个比较函数作为参数,进行数字的排序
function compare(value1,value2){
return value1-value2;
}
var arr=[5,1,24,12];
arr.sort(compare);
alert(arr); //1,5,12,24
9)数组的splice方法:删除元素/删除并向数组添加新元素,返回新数组
1)删除:splice(起点,长度)--起点从0开始
var arr=[1,2,3,4,5,6];
arr.splice(2,3) //1,2,6
arr.splice(2,0) //没有删除,长度为零
2)插入:splice(起点,长度,元素)
var arr=[1,2,3,4,5,6];
splice(2,0,'a','b') //1,2,a,b,3,4,5,6
splice(2,2,'a','b') //1,2,a,b,5,6
10)数组的连接(concat):谁在前面先写谁
var a=[1,2,3]
var b=[4,5,6]
a.concat(b); //1,2,3,4,5,6
b.concat(a); //4,5,6,1,2,3
11)数组的slice方法:从某个已有的数组返回选定的元素,形成新数组,且对原来的数组没有影响
当slice有一个参数时:从指定位置-->数组结尾
当slice有两个参数时:从开始指定位置-->到结束指定位置
var colors=['red','blue','yellow','black','write'];
var colors1=colors.slice(1); //'blue','yellow','black','write'
var colors2=colors.slice(1,3); //'blue','yellow','black'
12)位置方法:indexOf()/lastindexOf()
都接受两个参数:'要查找的项'和(可选的)'表示查找起点位置的索引'
indexOf:从数组的开头(位置0)往后查找
lastindexOf():从数组的末尾开始往前查找
两个方法都返回要查找的项在数组中的位置,没有查找到则返回-1
var arr=[1,2,5,7,5,9];
alert(arr.indexOf(5)); //2
alert(arr.lastindexOf(5)); //4
注:支持浏览器为:IE9+,Firefox 3+,Opera 9.5+,Chrome
Object类型与Array类型的更多相关文章
- JavaScript系统学习小结——Object类型、Array类型
今天学习JavaSript中引用变量中的Object类型和Array类型: 1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择: 创 ...
- JavaScript的进阶之路(三)引用类型之Object类型和Array类型
引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var o ...
- 引用类型--Object类型、Array类型
引用类型的值(对象)是引用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,它描述的是一类对象具有的属性和方法. 对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数 ...
- object类型转换为Array类型
var obj = {a: 1, b: 2, c: 3}; // .... var arr = []; for(var key in obj){ if(!obj.hasOwnProperty(key) ...
- 判断javaScript变量是Ojbect类型还是Array类型
JavaScript是弱类型的语言,所以对变量的类型并没有强制控制类型.所以声明的变量可能会成为其他类型的变量, 所以在使用中经常会去判断变量的实际类型. 对于一般的变量我们会使用typeof来判 ...
- js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math
数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...
- 《JavaScript高级程序设计》读书笔记 ---Array 类型
除了Object 之外,Array 类型恐怕是ECMAScript 中最常用的类型了.而且,ECMAScript 中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript 数组与其他语 ...
- javascript数据类型之Array类型
Array类型 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.而且,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript数组与 ...
- php--->把json传来的stdClass Object类型转array
php把json传来的stdClass Object类型转array 1.Php中stdClass.object.array的概念 stdClass是PHP的一个基类,即一个空白的类,所有的类几乎都继 ...
随机推荐
- Android官方提供的下拉刷新控件——SwipeRefreshLayout
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...
- mysql双主复制总结
双主复制: 1).在两台服务器上各自建立一个具有复制权限的用户: 2).修改配置文件: # 主服务器A上 [mysqld] server-id = 10 log-bin = mysql-bin rel ...
- iptables防火墙作为基本需求的配置
企业中使用iptables防火墙:(一般不要在命令中输入规则) # Firewall configuration written by system-config-firewall# Manual c ...
- sbt Getting org.scala-sbt sbt 0.13.12 ...
本地仓库被我搞乱了,一气之下整个删掉了本地仓库,再重启sbt卡在Getting这一步. Getting org.scala-sbt sbt 0.13.12 ... 卡住 补充sbt配置文件: 文件结构 ...
- 2016huasacm暑假集训训练三 C - Til the Cows Come Home
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/C N题目大意是有n个点,然后给出从a点到b点的距离,a和b是互相可以抵达的,则是无 ...
- RESTful框架调研
背景 当前的开放服务平台发展趋势,是服务使用者变得多种多样,其中既有各种前端设备(台式机.手机等),又有各种后端服务器,因此必须有一个统一的机制,方便各种服务使用者和开放服务平台进行通信.为了更好的实 ...
- apk反编译、smali修改、回编译笔记
最近下了一个apk程序,但是一启动会弹出一个流氓广告.这个广告不是原厂商加的,而是有人在原有apk程序的基础上,加了一个壳,让apk先启动他加的广告,再启动原来的程序,很恶心.于是想去掉它. 试了几个 ...
- 《Linux内核分析》第四周 扒开系统调用的“三层皮”
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK FOUR( ...
- 模式窗口刷新不弹出新窗口触发NET事件
最近做项目的时候用到模式窗口,这个东西我从来没有用过,事实上我是讨厌用这个东西,由于项目需要也只好忍着了.在实现的时候发现了一个问题,打开一个模式窗口后如果里面有asp.net控件并绑定有后台事件的话 ...
- asp.net页面间传值方式
使用asp.net开发项目,必然会在页面间进行传值,本文介绍几种常见的页面传值方式,仅作笔记,以便后续查找使用. 前提:新建两个页面:ValuePage.aspx,ObtainValue.aspx,本 ...