• 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语句

  • 相关阅读:
    node.js模块本地代理模块(将自己本机/局域网)服务 代理到外网可以访问
    node.js基本概念简单解释
    RN 使用第三方组件之react-native-image-picker(拍照/从相册获取图片)
    RN 上传文件到以及上传文件到七牛云(初步)
    【HTML+CSS+JavaScript+Bootstrap+Vue】选项卡(两种方式)
    【HTML+CSS+JavaScript+Bootstrap+Vue】登录(获取表单数据)
    【HTML+CSS+JavaScript+Bootstrap+Vue】待办事项
    第六章 前端开发——Vue框架
    第五章 前端开发——Boostrap
    【HTML+CSS+JavaScript(jQuery)】轮播图
  • 原文地址:https://www.cnblogs.com/wangnan1979/p/3402024.html
Copyright © 2020-2023  润新知