首页 > JS学习梳理(三)类型和语法

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. 生成器

转载于:https://www.cnblogs.com/chenjunsheep/p/9078802.html

更多相关:

  • empty()函数 是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。     如: 假设 $value = 0; 则empty($value)=false。     劝告各位,千万注意使用...

  • (四)Asp.net web api中的坑-【api的返回值】 原文:(四)Asp.net web api中的坑-【api的返回值】void无返回值IHttpActionResultHttpResponseMessage自定义类型我这里并不想赘述这些返回类型, 可以参考博文http://blog.csdn.net/leonk...

  • 今天碰见个题目,感觉短路表达式很好用。 题目: 定义一个计算圆面积的函数area_of_circle(),它有两个参数:r: 表示圆的半径;pi: 表示π的值,如果不传,则默认3.14function area_of_circle(r, pi) {} 我的写法:  if(arguments.length>=2) { ret...

  • 什么是DOM document object model 的简称,意思为文档对象模型。主要用来对文档中的html节点进行操作。 Dom的操作简单示例:

    Python 与 ABC 的一个重要区别在于其类型系统。ABC 采用静态类型,编译器会检查程序中的变量类型是否保持一致,如果不一致,程序就无法运行。并且,ABC与当时大多数静态语言不同,采用的是类型推导(和 Haskell 一样),而不是类型声明(比如 C 语言)。而 Python 采用动态类型,所有类型检查都是在程序运行过程中,而不...

  • python是计算机二级考试的科目之一,并没有级别的划分。其考试目标是测试考生掌握Python语言知识的程度和对Python语言的编程能力、调试能力和综合应用能力,在当下的应用中是十分重要的。 什么是python Python语言是一种解释运行、面向对象、扩展性强的程序设计语言,是大学生学习计算机编程能力、理解计算机解决问题的方法的...

  • 正在学C,书上老说空指针,或者说void指针,对于我这样的生手来说,理解非常容易造成混淆,因为void这个单词的意思也是空,到底空指针的意思是指指向地址为空的类型呢,还是指void类型的指针呢 (1)空指针所对应的是指指向的对象为空的指针。            不经发问,什么叫指向为空呢?要理解这点,必须理解如下几点(有点啰嗦,但...

  • 一、reponseType 1、什么是reponseType XMLHttpRequest.reponseType属性是一个枚举类型的属性,返回响应数据的类型,他允许我们手动的设置 返回数据的类型。如果我们将它设置为一个空字符串,它将默认的使用"text"类型。 当将reponseType设置为一个特定的类型的时候需要确保服务...

  • SNMP中,数据类型并不多。这里我们就讨论这些数据类型,而不关心这些数据类型在实际中是如何编码的。INTEGER一个变量虽然定义为整型,但也有多种形式。有些整型变量没有范围限制,有些整型变量定义为特定的数值(例如,IP的转发标志就只有允许转发时的或者不允许转发时的这两种),有些整型变量定义一个特定的范围(例如,UDP和TCP的端口号...