JavaScript 学习笔记(1)

变量

变量提升

  • JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升
console.log(a);
var a=1;

从顺序上来说上面的代码虽然会报错,但是因为JavaScript存在变量提升,因此真正运行的时候会按照下面的结果运行,并不会报错,会得到a是undefined的结果。

var a;
console.log(a);
a=1;

switch结构

  • 上面代码根据变量x的值,选择执行相应case如果所有case都不符合,则执行最后的default部分。需要注意是,每个case代码块内部的break语句不能少,否则会接下去执行下一个case代码块,而不是跳出switch结构。
  • 另外,在使用case语句进行比较的时候,采用的是严格运算符===,这意味着比较的时候不会发生类型转换
    比如下面这个例子:
var x =1;
switch(x){
       case x:
              console.log("x is equal to 1");
       case 2:
              console.log("x is equal to 2");
       default:
              console.log("x is equal to others");
}
//x is equal to 1
//x is equal to 2
//x is equal to others

正确的应该是:

var x =1;
switch(x){
       case x:
              console.log("x is equal to 1");
              break;
       case 2:
              console.log("x is equal to 2");
              break;
       default:
              console.log("x is equal to others");
}
//x is equal to 1

break与continue在循环中的区别

  • break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
  • break语句用于跳出代码块或循环。
var i=1;

for(;i<50;i++){
       console.log(i);
       if(i % 3 ===0){
              break;
       }
       
}
//1
//2
//3
  • continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环
var i=1;

for(;i<10;i++){
       
       if(i % 2 ===0){
              continue;//当i为偶数时回到终止打印操作并回到循环头部
       }
       console.log(i);
       
}
//1
//3
//5
//7
//9

标签

  • Js中标签经常与break以及continue配合使用用来跳出特定的循环
for(i=0;i<3;i++){
       for(j=0;j<3;j++){
              if(i===1&&j===1){break;}
              console.log(i+","+j);
       }
}
// 0,0
// 0,1
// 0,2
// 1,0
// 2,0
// 2,1
// 2,2

上面这个双重循环的例子里,不引用标签的话break只会跳出当前i=1的小循环
引入标签top以后

top:
for(i=0;i<3;i++){
       for(j=0;j<3;j++){
              if(i===1&&j===1){break top;}
              console.log(i+","+j);
       }
}
// 0,0
// 0,1
// 0,2
// 1,0

会直接跳出整个大循环回到标签的位置
让我们再来看看continue的例子

for(i=0;i<3;i++){
       for(j=0;j<3;j++){
              if(i===1&&j===1){continue;}
              console.log(i+","+j);
       }
}
// 0,0
// 0,1
// 0,2
// 1,0
// 1,2
// 2,0
// 2,1
// 2,2

当使用top标签以后

top:
for(i=0;i<3;i++){
       for(j=0;j<3;j++){
              if(i===1&&j===1){continue top;}
              console.log(i+","+j);
       }
}
// 0,0
// 0,1
// 0,2
// 1,0
// 2,0
// 2,1
// 2,2

posted on 2020-11-16 23:52  GwynWW  阅读(72)  评论(0)    收藏  举报

导航