对象和数组

对象,其实就是一种引用类型。而对象的值就是引用类型的实例。html

Object类型

建立Object类型有两种,一种是new运算,一种是字面量表达式。  对象里面能够存听任何类型。前端

1.使用new运算符建立Object数组

var box=new Object();  //new 方式
box.name="何";   //建立属性字段
box.age=28;    


//new 关键字能够省略
var box=Object();  //省略new关键字

2.使用字面量方式建立Object函数

var box={
 name:"何",
 age: 26
};

3.属性字段也可使用字符串形式this

var box={
  "name": "何",
  "age": 28
}
//也能够用字符串形式

4.使用字面量及传统复制方式编码

var box={};
box.name="何";
box.age=26;

5.两种属性输出方式spa

alert(box.age);   
alert(box["age"]);

6.给对象建立方法prototype

var box={
  run:function(){

   return"运行"
 }
}
alert(box.run());

7.使用delete删除对象属性code

delete box.name;htm

在实际开发过程当中,通常咱们更加喜欢字面量的声明方式。由于它清晰,语法代码少,并且还给人一种封装的感受。字面量也是向函数传递大量可选参数的首选方式。

function box(obj){       //参数是一个对象
  if(obj.name!=undefined)  //判断属性是否存在
     alert(obj.name);
  if(obj.age!=undefined)
    alert(obj.age);
}

box({name:"何",age:26})  //调用函数传递一个对象

Array类型

建立Array(数组)类型有两种方式:第一种是new运算符,第二种是字面量。

1.使用new关键字建立数组

var  box=new Array();  //建立了一个数组
var box=new Array(10); //建立一个包含10个元素的数组
var box=new Array("何",26,"前端"); //建立了一个数组并分配好了元素

2.以上三种方法均可以省略new关键字。

bar box=Array();

3.使用字面量方式建立数组

var box=["何",26,“前端”];
alert(box[2])   //使用索引下表来读取数组的值
alert(box.length) //使用length属性获取数组元素量  获取元素个数

建立一个稍微复杂的数组

var box=[
     {            //第一个元素是一个对象
       name:"何",
       age:26,
       run:function(){
         return "运行"
       },
     },
     ["马云","飞流",new Object()],   //第二个元素是一个数组
     "江苏",                        //第三个元素是一个字符串
     2+2,                          //第四个元素是数值
     new Array(1,2,4)              //第五个元素是数组
         ];
alert(box);

Array对象方法

注意区别

slice(),   数组长度不会改变

splice(),  与 slice() 不一样的是,splice()的数组长度       会改变

substr(),  字符串长度不会改变

substring(),  字符串 长度不会改变   与 slice() 和 substr() 方法不一样的是,substring() 不接受负的参数。

slice()方法可从已有的数组返回选定的元素,不会修改数组的值和长度,只是返回一个子数组。若是想删除数组中的一段元素,可用Array.splice()。这也是slice()和splice()方法的区别

语法:

arrayObject.slice(start,end)

参数:

start  必需。规定从何处开始选取。若是是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end  可选。规定从何处结束选取。该参数是数组片段结束处的数组下标。若是没有指定该参数,那么切分的数组包含从 start 到数组结束的全部元素。若是这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

var arr=["一","二","三","四","五"];
 document.write(arr.slice(-5,-1))
 document.write("<br>")
 document.write(arr)
//一,二,三,四
//一,二,三,四,五

splice  只改变数组的长度  其余的和slice()同样

var arr=["一","二","三","四","五"];
 document.write(arr.splice(1,5))
 document.write("<br>")
 document.write(arr)

//二,三,四,五
//一

splice() 方法向/从数组中添加/删除项目,而后返回被删除的项目。会改变原始数组。

arrayObject.splice(index,howmany,item1,.....,itemX)

index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany 必需。要删除的项目数量。若是设置为 0,则不会删除项目。

item1, ..., itemX 可选。向数组添加的新项目。

var arr=["a","b","c","d"];
 document.write(arr.splice(1,2));
 document.write("<br>");
 document.write(arr);

//b,c
//a,d

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。substr() 的参数指定的是子串的开始位置和长度,所以它能够替代 substring() 和 slice() 来使用, 可是智能在字符串中使用。

var str="hello";
 document.write(str.substr(1));
 document.write("<br>");
 document.write(str);

//ello
//hello

substring() 方法用于提取字符串中介于两个指定下标之间的字符。 start不能为负数。

var str="Hello world!"
document.write(str.substring(3))
document.write("<br>")
document.write(str)

//lo world!
//Hello world!

contact()   链接两个或更多的数组,并返回结果。

var arr1=[111,222,333,444,555];
 var arr2=[111,222,333,444,555];
 document.write(arr1.concat(arr2))
 //111,222,333,444,555,111,222,333,444,555

join() 方法用于把数组中的全部元素放入一个字符串。

var arr1=["一","二","三","四","五"];
 var arr2=["一"];
 document.write(arr1.join(arr2))

//一一二一三一四一五


var arr1=["一","二","三","四","五"];
 document.write(arr1.join("."))

//一.二.三.四.五

pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,而且返回它删除的元素的值。若是数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

var arr=["一","二","三","四","五"];
 document.write(arr.pop())
 document.write("<br>")
 document.write(arr)

//五
//一,二,三,四

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

var arr=["一","二","三","四","五"];
 document.write(arr.push("六"))
 document.write("<br>")
 document.write(arr)

//6
//一,二,三,四,五,六

reverse() 方法用于颠倒数组中元素的顺序。

var arr=["一","二","三","四","五"];
 document.write(arr.reverse())

//五,四,三,二,一

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。 和pop相反  pop是删除最后一个元素。

var arr=["一","二","三","四","五"];
 document.write(arr.shift())
 document.write("<br>")
 document.write(arr)

//一
//二,三,四,五

sort() 方法用于对数组的元素进行排序.

若是调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(若有必要),以便进行比较。

若是想按照其余标准进行排序,就须要提供比较函数,该函数要比较两个值,而后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具备两个参数 a 和 b,其返回值以下:

  • 若 a 小于 b,在排序后的数组中 a 应该出如今 b 以前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。
var arr=["d","c","b","a"];
 document.write(arr.sort())
//a,b,c,d

数值从小到大排序,若是直接sort(),不会按照数值大小排序,会按照字母排序,因此须要使用一个排序函数。

function sortNumber(a,b)
{
  return a-b
}
var arr=["100","55","1000","1"];
document.write(arr.sort(sortNumber))


//1,55,100,1000

 

toSource() 方法表示对象的源代码。toSource() 方法一般由 JavaScript 在后台自动调用,并不显式地出如今代码中,不兼容,只有火狐能够。
 

function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}

var bill=new employee("Bill Gates","Engineer",1985);

document.write(bill.toSource());


//({name:"Bill Gates", job:"Engineer", born:1985})

toString() 方法可把数组转换为字符串,并返回结果。

var arr=["1","2","3","4"];
 document.write(arr.toString());
 document.write("<br>");
 document.write(arr);

//1,2,3,4
//1,2,3,4

toLocalString()把数组转换为本地字符串。首先调用每一个数组元素的 toLocaleString() 方法,而后使用地区特定的分隔符把生成的字符串链接起来,造成一个字符串。

var arr=["你","我","他"];
 document.write(arr.toLocaleString());
 document.write("<br>");
 document.write(arr);

//你,我,他
//你,我,他

//我没有看到什么区别?

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。同shift()相反

var arr=["你","我","他"];
 document.write(arr.unshift("咱们","大家"));
 document.write("<br>");
 document.write(arr);

//5
//咱们,大家,你,我,他

valueOf() 方法返回 Array 对象的原始值。valueOf() 方法返回 Array 对象的原始值。

 

遍历数组

//两种
var arr=["你","我","他"];
//第一种
 for(var i=0;i<arr.length;i++){
	document.write(arr[i])
   }
//第二种
 for(var i in arr){
	 document.write(arr[i])
	 }


//你我他

面向对象

面向对象 ,就是把方法(函数)转成对象  对象里面有属性 和值 (普通值  还有方法)

//原本 test()是个函数
function test(){
		this.age=100;
		this.fn=function(){
			return 'fn11';
			}
		}
//经过new 把他转化为对象(object)
var t1=new test();

//结果是[object Object]

还能够在方法外部增长属性  

function test(){
		this.age=100;
		this.fn=function(){
			return 'fn11';
			}
		}
		test.prototype.t2="咱们"
		var t1=new test();
		document.write(t1.t2)

//结果是  咱们

内置对象

Math, String,Array, Date

eg:var d=new Date();

相关文章
相关标签/搜索