关于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语句来

退出循环或者循环的某一次迭代。

如:

<script type="text/javascript">
  outerloop:
   for (var i = 0; i < 10; i++)
   {
     innerloop: 
     for (var j = 0; j < 10; j++)
      {
        if (j > 3)
        {
          break;
        }
        if (i == 2)
        {
          break innerloop;
        }
        if (i == 4)
        {
          break outerloop;
        }
        document.write("i=" + i + " j=" + j + "<br>"); 
      }
   }
</script>

 

posted on 2015-11-29 22:11  GoGoChad  阅读(312)  评论(0编辑  收藏  举报