zoukankan      html  css  js  c++  java
  • JS学习梳理(三)类型和语法

    1. 类型
      • JavaScript 有七种内置类型:null、undefined、boolean、number、string、object 和symbol,可以使用typeof 运算符来查看
      • typeof返回的都是字符串
      • 很多开发人员将undefined 和undeclared 混为一谈, 但在JavaScript 中它们是两码事。undefined 是值的一种。undeclared 则表示变量还没有被声明过
      • 字符串反转
        var a = "foo";
        var c = a
        // 将a的值转换为字符数组
        .split( "" )
        // 将数组中的字符进行倒转
        .reverse()
        // 将数组中的字符拼接回字符串
        .join( "" );
        c; // "oof"
      • 较小数值比较
        function numbersCloseEnoughToEqual(n1,n2) {
            return Math.abs( n1 - n2 ) < Number.EPSILON;
        }
      • 值和引用
        • null 类型只有一个值null,undefined 类型也只有一个值undefined
        • 所有变量在赋值之前默认值都是undefined。void 运算符返回undefined
        • 数字类型有几个特殊值, 包括NaN( 意指“not a number”, 更确切地说是“invalid number”)、+Infinity、-Infinity 和-0
    2. 强制转换
      • 显式强制转换
        var a = "Hello World";
        ~a.indexOf( "lo" ); // -4 <-- 真值!
        if (~a.indexOf( "lo" )) { // true
        // 找到匹配!
        }
        ~a.indexOf( "ol" ); // 0 <-- 假值!
        !~a.indexOf( "ol" ); // true
        if (!~a.indexOf( "ol" )) { // true
        // 没有找到匹配!
        }
      • 隐式强制类型转换
      • || && 有意思的“操作数选择器”
        function foo(a,b) {
            a = a || "hello";
            b = b || "world";
            console.log( a + " " + b );
        }
        foo(); // "hello world"
        foo( "yeah", "yeah!" ); // "yeah yeah!"
      • 强制转换
        1. 如果Type(x) 是数字,Type(y) 是字符串,则返回x == ToNumber(y) 的结果
        2. 如果Type(x) 是字符串,Type(y) 是数字,则返回ToNumber(x) == y 的结果
        3. 如果Type(x) 是布尔类型,则返回ToNumber(x) == y 的结果
        4. 如果Type(y) 是布尔类型,则返回x == ToNumber(y) 的结果
    3. 异步和性能
      • Promise.resolve保证可信任
      • 调用Promise 的then(..) 会自动创建一个新的Promise 从调用返回
      • 在完成或拒绝处理函数内部,如果返回一个值或抛出一个异常,新返回的(可链接的)Promise 就相应地决议
      • 如果完成或拒绝处理函数返回一个Promise,它将会被展开,这样一来,不管它的决议值是什么,都会成为当前then(..) 返回的链接Promise 的决议值
      • Promise.all([ .. ])
      • Promise.race([ .. ])
    4. 生成器
  • 相关阅读:
    【BUG修复】视频综合管理平台EasyNVS首页设备接入情况显示与实际不符如何调整?
    数据库连接池
    手写SORM(simple object relation mapping)框架3—DBManager和TableContext的设计
    jdbc—总结
    jdbc—CLOB和BLOB
    jdbc—时间处理
    jdbc—事务
    递归(最大公约数)
    C++ return
    函数参数
  • 原文地址:https://www.cnblogs.com/chenjunsheep/p/9078802.html
Copyright © 2011-2022 走看看