zoukankan      html  css  js  c++  java
  • JavaScript小结

      

      1.  JavaScript 的作用域完全是由函数来决定的,if、for 语句中的花括号不是独立的作用域。

      2.  将C/C++代码编译为JavaScript

        C/C++如今也可以用来编写Web应用程序,同样可以将它们编译为JavaScript。一些工具如下。

      • Emscripten:Mozilla开发的LLVM后端,可以将任何通过LLVM前端(比如C/C++ Clang)生成的LLVMIR中间码编译成JavaScript代码。
      • mala:可以将vala代码(vala代码在编译时,首先会编译为C代码)编译为JavaScript
      • Mandreel:可以将C++和Objective-C代码编译为高度优化的JavaScript源码
      • Clue:一个C语言编译器,可以将C语言代码编译为高质量的Lua、Javascript或Perl代码。 

        由于Emscripten可以将LLVM二进制代码编译成JavaScript,LLVM是一种很流行的中间编译格式,几乎所有语言都有LLVM编译器,因此Emscripten也可以作    为大部分语言转换为JavaScript的通用工具。

      3.  一般语言中,逻辑运算与布尔运算是等义的,其运算元与目标类型都是布尔值(true/false)。 JavaScript当然支持这种纯布尔运算。不但如此,JavaScript还包括    另外一种逻辑运算,它的表达式结果类型是不确定的。

        只有“逻辑或(||)”和“逻辑与(&&)”两种运算能做这样的事。它们的使用方法与运算逻辑都与基本的布尔运算一致,例如:
          var str ='hello';
          var obj ={};
          x= str ||obj;
          y= str &&obj;
        这种运算的特别之处在于:运算符“||”与“&&”既不改变运算元的数据类型,也不强制运算结果的数据类型。除此之外,还有以下两条特性:
        � 运算符会将运算元理解为布尔值,以进行布尔运算;
        � 运算过程(与普通布尔运算一样)是支持布尔短路的。
        由于支持布尔短路,因此在上例中“str|| obj”表达式只处理第一个运算元就可以有结果,其结果值是str——转换为布尔值时为true,不过由于前面所
        述的“不强制运算结果的数据类型”,所以表达式的结果值仍是“str”。同样,若以“str&&obj”为例,其返回结果值就会是“obj”了。

        这种逻辑运算的结果一样可以用在任何需要判断布尔条件的地方,包括if或while语句,以及复合的布尔表达式中。例如:
        (续上例)
          //用于语句
          if (str ||obj) {
            ...
          }
        //用于复杂的布尔表达式
          z = !str &&!(str ||obj);
        由于表达式的运算元可以是值或其它表达式(包括函数调用等),因此连续的逻辑运算也可以用来替代语句。这也是一种被经常提及的方法,

        � 1.3.3.1 通过表达式消灭分支语句
        � 1.15使用更复杂的表达式来消减IF语句

  • 相关阅读:
    移动端HTML5音频与视频问题及解决方案
    git did not exit cleanly
    移动端事件对象touches的误区
    原创:CSS3技术-雪碧图自适应缩放与精灵动画方案
    H5+JS+CSS3 综合应用
    深入理解CSS3 Animation 帧动画
    在 MacOS 中使用 multipass 安装 microk8s 环境
    [译] Design patterns for container-based distributed systems
    Sangmado 公共基础类库
    Redola.Rpc 集成 Consul 服务发现
  • 原文地址:https://www.cnblogs.com/wangnan1979/p/3402024.html
Copyright © 2011-2022 走看看