Java教程

你不知道的JavaScript(中卷)——读书笔记

本文主要是介绍你不知道的JavaScript(中卷)——读书笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 类型

ECMAScript语言类型: Undefined、Null、Boolean、String、Number、Object、Symbol(ES6新增)

  • 类型判断:使用typeof判断类型

    特例: (null的二进制前三位是000)

    typeof null === "object" // true
    // 判断Null
    !a && typeof a === "object"
    
  • 函数

    // 函数
    typeof function a(b,c){} === "function" // true
    // 函数对象的length是其声明参数的个数
    a.length; // 2
    
  • JS中的变量是没有类型的,只有值才有类型,变量可以随时持有任何类型的值——弱类型

  • undefined——已声明但还没有赋值 undeclared—— 没有声明过

    // 未声明的变量 
    typeof b; // "undefined" 
    

2. 值和引用

  • 简单值(即标量基本类型值,scalar primitive)总是通过值复制的方式来赋值/传递,包括null、undefined、字符串、数字、布尔和ES6中的symbol,通过值传递的方式不会影响到原来的值
  • 复合值(compound value)——对象(包括数组和封装对象,参见第3章)和函数,则总是通过引用复制的方式来赋值/传递,通过引用传递的方式可能改变原来的值,JS由于没有指针,它的引用只能指向值,不能指向别的变量/引用

3. 原生函数

常见的原生函数:String() Number() Boolean() Array() Obejct() Function() RegExp() Date() Error() Symbol()

  • 封装对象(object wrapper)扮演着十分重要的角色。由于基本类型值没有.length和.toString()这样的属性和方法,需要通过封装对象才能访问此时JavaScript会自动为基本类型值包装(box或者wrap)一个封装对象
  • JavaScript为基本数据类型值提供了封装对象,称为原生函数(如String、Number、Boolean等)。它们为基本数据类型值提供了该子类型所特有的方法和属性(如:String#trim()和Array#concat(…))

4. 异步

它是指程序的一部分现在运行,而另一部分则在将来运行——现在和将来之间有段间隙,在这段间隙中,程序没有活跃执行——等待用户输入、从数据库或文件系统中请求数据、通过网络发送数据并等待响应,或者是在以固定时间间隔执行重复任务(比如动画)

事件循环:

4.1 回调

  • 控制反转
  • 不符合大脑思考

4.2 Promise

  • 控制反转再反转
  • 语法糖
  • 异常处理
这篇关于你不知道的JavaScript(中卷)——读书笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!