JavaScript学习心得(三)

JavaScript学习心得(三)

今天学习JavaScript的表达式

1.数组与对象的初始化初表达式,这里我发现与之前学习的Java不同的是,java数组中需要初始化数组长度才能引用数组长度范围内的数组项,而JavaScript中,只要初始化数组,则 var array = [];或var array = [1, 2, 3],就可以引用超出数组范围的项,则对于前面的array数组可以 array[6] = 1;对于对象,类似的如下:

<span style="font-size:18px;">var p = {x:3.2, y:-1.2};
p              //=> Object { x=3.2, y=-1.2}
var q ={};
q.x=3.2;q.y=-1.2;
q              //=>Object { x=3.2, y=-1.2}</span>
即使q对象没有事先声明x、y这两个属性,但是在使用时,可以“无中生有”地直接赋值:q.x=3.2; q.y=-1.2;


2.属性访问表达式。这也与java有些不同,JavaSrcipt访问属性以以下两种方式:

expression . identifier

expression [ expression ]

<span style="font-size:18px;">var o = {x:1, y:{z:3}};
var a = [0,4,[5,6]];
o.x              //=> 1
o["x"]           //=>1
o["y"]["z"]      //=>3
a[2]             //=>[5,6]
a[2]["1"]        //=>5
</span>
在 " . " 和 " [ " 之前的表达式总是首先计算,如果再向下一级或深一层访问如o["y"]["z"],那么JavaScript会把它o["y"]转换为对象(如果o["y"]不是对象或数组)继续访问其内部属性,如果o["y"]为null或undefined就是抛出异常,因为null和undefined这两个值不能包含任意属性。如果对象表达式后跟随句点和标识符,则 “ . ” 的访问方式,会查找由这个标识符所指定的属性的值,并将其作为整个表达式的值返回。如果是 ' [ ] '访问方式,则会计算方括号内的表达式的值并将它转换为字符串。所以o["y"]["z"]返回的是一个字符串或undefined(访问一个不存在的属性)。
另外,如果访问的属性是一个保留字或包含空格和标点符号,或是数字(对数组来说)如a[2]["1"],就要使用expression [ expression ]的访问方式,还有,如果当属性名通过运算得出的值不是固定的值的时候,这时必须使用expression [ expression ]访问。


3.delete,这个delete与C++中的delete不同,在JavaScript中它是用来删除对象属性或者数组元素。


语句

1.空语句。表示法如下:

<span style="font-size:18px;"> ;
for(var i=0; i<100; ++i) ;           //空循环
if(isStrue) ;                        //空内容
while(i<100) ;                       //空循环
</span>
注意分号;

2.JavaScript中的switch。switch中的case表达式的值是运行时计算的,而C、C++、java中的是编译时常量。相比之下,JavaScript中的switch比较低效。

3.JavaScript中的for/in

<span style="font-size:18px;">var o = [0,1,2,3,4,5,6]
for(var p in o)          //将属性名字赋值给变量
  console.log(o[p]);      //输出每个属性的值
                         //=>1,2,3,4,5,6
</span>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值