对象,其实就是一种引用类型。而对象的值就是引用类型的实例。html
建立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(数组)类型有两种方式:第一种是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);
注意区别
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,其返回值以下:
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();