JavaScript的语句

本文详细介绍了JavaScript中for/in循环的使用方法及其特点,包括如何遍历对象属性、复制属性名到数组等;同时讲解了var声明变量的注意事项以及function定义函数的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你是C、C++或者Java程序员,那么你一定会发现JavaScript的语句十分面熟。所以这里只讨论JavaScript的比较特别的语句,那些常见语句就省略了。

① for/in语句

for/in语句是个有点特别的循环语句,它的语法如下:

for(variable in object)

statement

variable应该是一个变量名,声明一个变量的var语句,数组的一个元素或者是对象的一个属性。object是一个对象名,或者是计算结果为对象的表达式。statement通常是一个原始语句或者语句块,它构成了循环的主体。

for/in循环提供了一种遍历对象属性的方法。for/in循环的主体对object的每个属性执行一次。在循环体执行之前,对象的一个属性名会被作为字符串赋给变量variable。在循环体内部,可以使用这个变量和“[ ]”运算符来查询该对象属性的值。例如下面的for/in循环将输出一个对象的所有属性名及它的值:

for(var prop in my_object){
document.write("name:"+prop+"; value:"+my_object[prop],"<br>");
}
可以采用下面的代码把一个对象的所有属性名复制到一个数组中:

var o={x:1,y:2,z:3};
var a=new Array();
var i=0;
for(a[i++] in o)/*empty loop body*/;
JavaScript的数组不过是一种特殊的对象。因此for/in循环像枚举对象属性一样枚举数组下标。例如在前面的代码块后面加上下面这行代码可以枚举数组的属性0、1、2:

for(i in a) alert(i);
其实for/in循环并不会遍历对象的所有可能的属性。对象的有些属性以相同的方式标记成了只读的、不可删除的或者不可列举的。这些属性使用for/in循环不能枚举出来。虽然所有的用户定义属性都可以枚举,但是许多内部属性包括所有的内部方法都是不可枚举的。对象可以继承其他对象的属性,那些已继承的用户定义的属性可以使用for/in循环枚举出来。

② var语句

由var语句创建的一个特性或多个特性不能用delete运算符来删除。var语句还能作为for循环和for/in循环的一部分:

for(var i=0;i<10;i++) document.write(i,"<br>");
③ function语句

function语句定义了一个JavaScript函数。function语句的主体必须使用大括号,即使主体只有一条语句。从技术上说,function语句并非是一个语句。在JavaScript程序中,语句会引发动态的行为,但是函数定义描述的却是静态的程序结构。语句是在运行时执行的,而函数定义在解析时发生,并不是在运行时发生,这一事实产生了某些令人吃惊的作用。考虑下面的代码:

alert(f(4));   //16
var f=0;
function f(x){
return x*x;
}
alert(f);    //0
出现这种特殊的结果是由于函数定义和变量定义发生在不同时刻。幸运的是,这种情况并不常常发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值