创建数组
var arr = [ 'a','b','c',18,32 ];
数组序号: 0 1 2 3 4 从0开始算
读取 arr[ 2 ];
alert( arr[ 3 ] ); → 弹出18;
可作运算:alert ( arr[ 3 ] + 2) ;→ 弹出20;
修改
arr[ 4 ] = false ;
位置 值
注意:前面我们添加都是用 += , += 只对非对象数据类型起作用,只有可以用运算的数据类型才能用 +=
arr[ 6 ] = 7;
数组第5是未定义;
→arlert( arr );
→ alert ( arr[ 5 ] )
记法:第5位数我们不知道它是什么数据类型 那就是undefined类型
第7位以后的也是undefined类型
获取数组的长度:length
语法 : arr.lenght → 返回数组的长度
例:
var x = 50;
var arr = [ 1,2,3,x ];
alert( arr );
多维数组
<script type="text/javascript">
var x = 50;
var arr = [
1,
2,
[
4,
5,
6,
[
7,
8,
9
]
]
];
</script>
取9数值
alert( arr[ 2 ][ 3 ][ 2 ] );
长度:3一维数组的长度
对象的自定义
例1
<div id = 'box' ali='阿里' ></div>
<script>
var oBox = document.getElementById( 'box' );
oBox.ali = '345';
alert( oBox.ali );
</script>
从而看出div里的ali与js里oBox.ali不一样
因为:ali是自定义标签属性,oBox .获取不了,oBox.ali修改不了,所以oBox.ali跟标签里的没有关系,只是js里对象的自定义属性,只存在于js节点里;
例2
<div id = 'box' ali='阿里' ></div>
<script>
var obj ={ };
obj.name = 'abc';
alert( obj.name );
</script>
如果不写obj.name = 'ali';直接弹 alert( obj.name )
不是报错;
注意:
一个对象下面,不存在的属性,在运用的时候只会是undefined不会报错;
一个直接的变量,当不存在的时候(没有var)会报错;
var obj = {};
var box = 1;
obj.box = 1;
上面2个box是不一样;
1、box=1 是公共的box的变量;
2、obj.box是对象里的box的变量; 在作用域不一样的
总结:
1、全局的变量,和对象 . 的属性,即使同名也没有任何关系;
2、一个对象可以通过 . 操作添加一个没有的属性来存值;
3、一个对象下面不存在的属性,在运用的时候,只会是undefined不会报错;
[]的其他作用
所有对象后面的 . 操作可以用 [] 的形式来代替
例:
<div id= 'box' ;></div>
<script>
var obj = document.getElementById ( 'box' );
obj[ 'innetHTML' ] = '123' ;
</script>
obj[ 'innerHTML' ]这里如果不加 ' ' innerHTML就是一个变量;所有要加 '' ;
另一种写法:
<div id= 'box' ;></div>
<script>
var obj = document.getElementById ( 'box' );
var x = 'innerHTML';
obj[x] = '123' ;
</script>
注意: 不能直接用 obj.x = '456';
→ 等同于 obj.'innerHTML' = '456'; 这里的‘innerHTML’ 是字符串
在不确定要加属性用[ ]
例
var a = 'width';
obj[a] = '200px';
这样到时候要改直接改a里面的值就可以了,扩展性比较好