1:var box = new Object(); //创建一个对象
2:var box={
'name':'lee',
age:15
};
alert(box.name);
alert(box['name']) //可以用 . (点) 加 数组格式取出对象里的属性 但是必须要保证属性名加上引号取出
3:box.run = function(){
alert();
} //可以直接后期添加函数属性
4:function objrun(){
return '123';
}
box.run = objrun(); //这种方法 alert(box.run) 调用时可以不用给run加括号
box.run = objrun; //这种方法时 去掉外部方法的括号后 调用时 要 alert(box.run())
这样加括号 能正常输出return的值 否则是把整个objrun的函数形式原样输出
5:var box ={
name:'ll',
age:25,
run:function(){
return '123';
}
}
alert(box.run()) //不加括号打印代码 加了才算真正调用run方法输出123
6:数组要点
var box =new Array(); // Array('延迟') 如果传入字符串 只是创建了一个数组内存位置 打印出 延迟
alert(box); // Array(10) 这样是创建了10个数组内存位置 如果某位置没有赋值 打印时用逗号占位置
7:var box=[1,2,] alert(box.length) //额外的逗号会让IE获取到 显示长度为3 而参数错误 火狐还是显示2长度
var box=[,,,] IE是4 长度 火狐是3长度
8;var box=[];
box.name=28;
box['age'] = 'ss';
alert(box.name) //这样子赋值后是不会增加原数组的内存 单独打印box是不会显示name 和age的
但是对于 box[0] = 15 这种情况是可以单独打印box时会显示 15 也就是说当操纵下标来赋值时是可以改变创建的数组的内存大小
8:array.length = 10 可以强制定义数组大小
可以通过这个 .lenght来动态创建数组大小 box[box.lenght]=
;9:数组的内置方法
box.toString(); //这三种方法,当只是 var box=['li',12,'延迟']这样创建数组时 打印结果都一致,
但是当 var box = ['s',55, new Date()] 这种格式时,前两个方法打印标准格式时间 而最后一个是按照本地时间格式输出
如 2016-11-11 15;12;11
box.valueOf();
box.toLocaleString();
10:使用 .join() 可以选择不用默认的逗号来分割元素
如var box=['li',1,'言辞'] box.join('|') 结果会显示为 li | 1 | 言辞
使用typeof 可以知道这个方法返回字符串类型 但是原数组类型还是object
11:数组的栈方法 后进先出
专门为数组提供了push() 和 pop()方法
box.push('jia') // 给数组末尾添加新元素 并且返回最新的数组长度 可以一次添加多个
box.push('jia','poo')
box.pop() //移除数组最后一个元素 并且返回移除的元素 里面不需要参数
12:队列方法 先进先出
通过push()在后端添加 然后通过shift() 移除数组开头的元素 并且返回移除的元素
.unshift('讲述') 给数组前端添加新元素 并且返回最新的长度 但是不同浏览器对此方法返回值有所不同
例如IE对他返回值不是长度 而是undefined 所以这些返回值一般不利用
13:数组其他常用方法
a:box.reverse() //返回逆序显示的数组 (原数组的引用被逆序)
b:box.sort() //从小到大排序
但是注意 sort()默认排序在数字排序上有些问题 因为数字和字符串排序算法一致 我们必须修改这一特征 修改方法是给sort(参数)
方法添加一个函数参数 通过这个参数返回值来确认是对数字还是字符排序
例如:
function compare(v1,v2){
if(v1<v2)return -1; //返回值必须是 -1 0 1这三个数字
else if(v1>v2)return 1;
else return 0;
}
var box=[0,1,4,10,5]; //如果加上引号表示字符 那么排序是根据数字第一位来决定大小的
alert(box.sort(compare)); 不用加括号 只需传递函数名字
c:concat() 可以为基于当前数组创建一个新的数组
var box2=box.concat('jkl'); //创建新数组 并添加新元素末尾
d:slice() //基于当前数组获取指定区域元素并创建一个新数组
var box=[1,2,3];
var box2=box.slice(1) //输出 2,3
slice(1,3) 2-4之间的元素 即从下标为1的元素开始取 然后到下标为3的元素之前不包括下标为3的元素
e:splice()有三种功能
(1):删除功能
var box2 = box.splice(0,2) //截取前两个元素 原来的数组box被截取的元素被删除了
(2):插入功能
var box2 = box.splice(1,0,'计算机',‘111’) //没有截取 但在第二个位置上插入两条元素,原来的第二个元素被后移了
(3):替换功能
box.splice(1,1,100) //截取了第二条 替换成100 返回截取的元素 原数组box中被替换了100