zoukankan      html  css  js  c++  java
  • javascript复习。

    1.变量提升

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

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

    输出 undefined 。 等同于

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

    这就是所谓的变量提升。下面的情况不会出现变量提升, 输出 b is not defind; 

    console.log(b);
    b = 1;
    

      

    2.else代码块总是跟随离自己最近的那个if语句

    var m = 1;
    var n = 2;
    
    if (m !== 1)
    if (n === 2) console.log('hello');
    else console.log('world');
    

    上面代码不会有任何输出,else代码块不会得到执行,因为它跟着的是最近的那个if语句,相当于下面这样。

    if (m !== 1) {
      if (n === 2) {
        console.log('hello');	
      } else {
        console.log('world');
      }
    }
    

    如果想让else代码块跟随最上面的那个if语句,就要改变大括号的位置。

    if (m !== 1) {
      if (n === 2) {
        console.log('hello');	
      }
    } else {
      console.log('world');
    }
    // world
    

    3.switch语句后面的表达式与case语句后面的表示式,在比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换

    4.do...while循环与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件。不管条件是否为真,do..while循环至少运行一次,这是这种结构最大的特点。另外,while语句后面的分号不能省略。

    5.需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true

    6.

  • 相关阅读:
    WIndows系统下mysql-noinstall安装配置
    Java compiler level does not match the version of the installed Java project facet.
    定时执行程序-Quartz简单实例
    win7安装ruby on rails
    ajax提交数据问题
    js打开新的链接下载文件
    Spring 3.2 ClassMetadataReadingVisitor 错误
    eclipse 错误: 找不到或无法加载主类
    sts 去掉启动的rss功能
    解决多线程下simpleDateFormat的安全问题
  • 原文地址:https://www.cnblogs.com/xizhilang/p/6550127.html
Copyright © 2011-2022 走看看