《YDKJS 中卷》读书笔记
类型
7 个内置类型:string
、number
、boolean
、object
、undefined
、symbol
、null
。
1 | typeof undefined === "undefined"; |
函数对象
函数对象是object
的一个子类型,具有一个内部属性[[call]]
,该属性使其可以被调用。
属性 | 含义 |
---|---|
[[call]] | 表明该对象是一个可调用对象 |
length | 函数对象声明的行参个数 |
7 个内置类型:string
、number
、boolean
、object
、undefined
、symbol
、null
。
1 | typeof undefined === "undefined"; |
函数对象是object
的一个子类型,具有一个内部属性[[call]]
,该属性使其可以被调用。
属性 | 含义 |
---|---|
[[call]] | 表明该对象是一个可调用对象 |
length | 函数对象声明的行参个数 |
为 JS 引擎提供支持,主要做以下 2 件事:
JS 引擎主要通过LHS
和RHS
从内向外(作用域可以嵌套)访问作用域。
LHS 找到标识符(变量)容器本身,然后引擎给它赋值
RHS 则是找到该容器的值,引擎使用该值进行其他操作
查询结果:
ReferenceError
异常ReferenceError
异常另,TypeError
异常表示作用域查询成功了但是对结果的操作是非法的,比如对不可调用对象执行调用操作、引用null
或undefined
的属性等。
设计模式的主题是将不变的部分与变化的部分找出来,然后将变化的地方通过模式封装起来。
1 | function Person(name) { |
从有点修正主义的角度来看,在 Java 8 中加入 Streams 可以看作把另外两项扩充加入 Java 8 的直接原因:把代码传递给方法的简洁方式(方法引用、Lambda)和接口中的默认方法。
多核 CPU 的每个处理器内核都有独立的高速缓存。加锁需要这些高速缓存同步运行,然而这又需要在内核间进行较慢的缓存一致性协议通信。
流是一系列数据项,一次只生成一项。程序可以从输入流中一个一个读取数据项,然后以同样的方式将数据项写入输出流。一个程序的输出流很可能是另一个程序的输入流。
编程语言中的函数一词通常是指方法,尤其是静态方法;这是在数学函数,也就是没有副作用的函数之外的新含义。
在 Java 8 里写下 File::isHidden 的时候,你就创建了一个方法引用,你同样可以传递它。
Collection 主要是为了存储和访问数据,而 Stream 则主要用于描述对数据的计算。