本文主要是介绍你不知道的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(中卷)——读书笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!