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

  • 相关阅读:
    rest framework 认证 权限 频率
    rest framework 视图,路由
    rest framework 序列化
    10.3 Vue 路由系统
    10.4 Vue 父子传值
    10.2 Vue 环境安装
    10.1 ES6 的新增特性以及简单语法
    Django 跨域请求处理
    20190827 On Java8 第十四章 流式编程
    20190825 On Java8 第十三章 函数式编程
  • 原文地址:https://www.cnblogs.com/wangnan1979/p/3402024.html
Copyright © 2011-2022 走看看