zoukankan      html  css  js  c++  java
  • js 基础知识总结

    1.switch结构

    switch语句部分和case语句部分,都可以使用表达式。

    switch(1 + 3) {
      case 2 + 2:
        f();
        break;
      default:
        neverhappens();
    }

    上面代码的default部分,是永远不会执行到的。

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

    var x = 1;
    
    switch (x) {
      case true:
        console.log('x发生类型转换');
      default:
        console.log('x没有发生类型转换');
    }
    // x没有发生类型转换

    上面代码中,由于变量x没有发生类型转换,所以不会执行case true的情况。这表明,switch语句内部采用的是“严格相等运算符”。

    2.闭包

    1)闭包简单理解成“定义在一个函数内部的函数”。闭包最大的特点,就是它可以“记住”诞生的环境,比如f2记住了它诞生的环境f1,所以从f2可以得到f1的内部变量。在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

    2)闭包的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量始终保持在内存中,即闭包可以使得它诞生环境一直存在。

    3.异或运算

    “异或运算”有一个特殊运用,连续对两个数a和b进行三次异或运算,aˆ=b, bˆ=a, aˆ=b,可以互换它们的值(详见维基百科)。这意味着,使用“异或运算”可以在不引入临时变量的前提下,互换两个变量的值。

    var a = 10;
    var b = 99;
    
    a ^= b, b ^= a, a ^= b;
    
    a // 99
    b // 10

    这是互换两个变量的值的最快方法。

    异或运算也可以用来取整。

    12.9 ^ 0 // 12
  • 相关阅读:
    rCore-Tutorial-Book-v3学习笔记(五)
    rCore-Tutorial-Book-v3学习笔记(四)
    rCore-Tutorial-Book-v3学习笔记(三)
    rCore-Tutorial-Book-v3学习笔记(二)
    rCore-Tutorial-Book-v3学习笔记(一)
    OpenStack 命令行速查表(转载)
    mysql数据库总结笔记
    Owncloud迁移上云案例
    Python
    高等数学(微积分)
  • 原文地址:https://www.cnblogs.com/imsomnus/p/7083567.html
Copyright © 2011-2022 走看看