在全局下qqq:'sssssss'这样键值对的写法是起到什么作用。

<script type="text/javascript">
    qqq:'sssssss';
    console.log(this.qqq);    //undefined
    console.log(window.qqq);  //undefined
    console.log(qqq);         //qqq is not defined
</script>

像这样在全局下使用键值对的写法,qqq是个什么东西,我一开始以为是像对象一样,挂在在window下的属性,可是并不是这样。undefined是发现没qqq,自动创建的,直接输出qqq是显示我没声明

也以为过是类似switch判断条件,如下:

var qqq = false;
qqq : console.log("2222");

结果console.log的输出是不关qqq的值的事,console.log始终输出。

问题就是在全局下qqq:'sssssss'这样的写法是起到什么作用。因为没有报错,就不知道这样的写的作用是什么。

回复
阅读 2.3k
4 个回答

特意搜索了下,这是“Labeled 语句”,一般用在for循环中,我也没用过。给出的例子大概看了下:

var i, j;

loop1:
for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
      if (i == 1 && j == 1) {
         continue loop1; // 重点在这个地方,如果直接使用 contiune 只是跳出内部的循环
      }
      console.log("i = " + i + ", j = " + j);
   }
}

// Output is:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
//   "i = 2, j = 0"
//   "i = 2, j = 1"
//   "i = 2, j = 2"
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"

参考

同对这个有过问题,解了疑惑,可以私聊

js有这样的语法么?搞笑哦 创建一个对象 var obj = {a:'123',b:'234'} 正常不是这样么?

宣传栏