关于javascript语句,有下面一些有趣的用法。
1.空语句的使用:
空语句只包含一个";",那在什么时候可以使用呢?
例:
//初始化一个数组a for(i = 0;i < a.length;a[i++] = 0);
在这个用于初始化的for循环中,不需要任何循环体,但是javascript需要循环体中至少包含一条语句,所以这里利用空语句保证语法正确。
(注意:循环体后面的语句块不一定需要花括号)
2.声明语句的注意点
1)关于var
var声明的全局变量和函数声明的变量无法利用delete来删除
2)关于function
function语句里的花括号是必须的。
函数声明不能放在if语句,while语句,或其他任何语句中
函数声明也会被显示地提前到脚本或函数的顶部,和var声明的提前不同,整个函数体同样也被提前了。也就是说,可以在声明一个函数之前调用它。
3条件语句
1)关于if
Javascript中if,else的匹配规则是,else总是和就近的if语句匹配。
例:
i=j=1; k=2; if(i==j) if(j==k) console.log("i equals k"); else console.log("i doesn't equal j"); //这里的缩进会给你错误的暗示!
上面这段代码其实会被解析为:
if(i==j){ if(j==k) console.log("i equals k"); else console.log("i doesn't equal j"); }
所以务必使用花括号
2)switch语句
switch语句中case 子句的内容和表达式的匹配方式是"==="恒等
子句case语句后必须要跟break或者return,否则余下的case语句也会被判断执行
default标签其实可以放在switch语句的任何地方
4.循环
1)for循环还可以用来便利链表数据结构
function tail(o){ for(;o.next;o = o.next) /* empty */; return o; }
2)for/in
可以利用下面的代码把所有对象属性赋值到一个数组
var o = {x:1,y:2,z:3}; var a = [],i = 0; for(a[i++] in o) /* empty */;
5.标签语句
通过给一个语句加标签,就可以给这个语句起一个名字,这样在程序的任何地方都可以使用这个名字来引用它,可以标记任何语句,
但是被标记的语句通常是那些循环语句,即while、do/while、for和for/in语句,通常给循环命名,就可以使用break语句和continue语句来
退出循环或者循环的某一次迭代。
如: