课堂笔记 2021.8.27 JS基础 下

JS基础 下

JS原始类型 (3)

Symbol ES6及之后的版本中引入的新原始数据类型。Symbol可以创建唯一标识。

  作为对象的key

  Symbol.for

  Symbol.keyFor    //得到一个对象的key

 

const id = Symbol('foo'); //创建的是局部的Symbol,局部的Symbol即使传同样的key,它们之间也不会相等。

而const foo = Symbol.for(foobar); //创建的是全局的Symbol

课堂笔记 2021.8.27 JS基础 下

 

 

 

私有属性,新的语言标准中private field有些不理想,所以也可以采用Symbol来定义私有属性。

内置Symbol,ES6内置了一些有用的Symbol,可以用来控制对象的一些内部行为

  Symbol.iteratior

  Symbol.toPrimitive

  Symbol.toStringTag

 

BigInt,是JavaScript新的原始类型,可以精确表示大于2^53-1的整数

  BigInt字面量:数字+n 

  BigInt运算:不能与Number直接进行运算

  显式类型转换:BigInt与Number相互转换

课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 

 

JS函数(1)

通过function关键字可以声明一个函数。

  函数声明没有块级作用域

  函数声明会被提升(hoist)

 

 

 课堂笔记 2021.8.27 JS基础 下

 

 

 函数表达式,可以将函数作为对象使用

  函数表达式不会被提升(hoist)

  函数表达式可以具名也可以匿名

  函数表达式具名只能在内部访问

课堂笔记 2021.8.27 JS基础 下

 

 

箭头函数,函数表达式的简写

  单行的箭头函数可以省略花括号和return

  只有一个参数的箭头函数可以省略圆括号

  箭头函数不能具名,也没有this上下文

 

 

 课堂笔记 2021.8.27 JS基础 下

 

 

执行上下文(闭包),函数由执行上下文,运行时会产生“闭包”

  闭包是运行时由函数调用产生的

  通过闭包可访问执行上下文中的数据

  如果产生闭包的引用被销毁,闭包被销毁

 

 

课堂笔记 2021.8.27 JS基础 下

 

 

 总结

  函数声明无块级作用域,存在hoist

  函数表达式可具名或匿名,具名只能内部使用

  箭头函数是函数表达式简写

  函数由执行上下文,运行时会产生“闭包”

课堂笔记 2021.8.27 JS基础 下

 

 

 

 

JS函数(2)

  this上下文

  动态绑定

  Function类

 

 

this上下文

在函数体内部,可以通过this对象访问函数调用this上下文。所谓函数调用的this上下文,是指函数的实际调用者对象。

 

 

 课堂笔记 2021.8.27 JS基础 下

 

setTimeout是直接调用sayHelloTo,而没有通过person去调用,所以函数拿不到person中this.lastName这个东西,所以出现了undefined

 

箭头函数

箭头函数没有this上下文,利用这一特性,可以让箭头函数访问外部作用域的this上下文。

课堂笔记 2021.8.27 JS基础 下

 

 

动态绑定

this上下文在函数调用时可以动态指定,方法是通过函数的call、apply或bind方法来调用。

课堂笔记 2021.8.27 JS基础 下

 

 

 Function类

函数是Function类的实例,我们可以用Function类动态创建函数对象。

课堂笔记 2021.8.27 JS基础 下

 

 

总结

  函数的this上下文默认是它的实际调用者

  箭头函数没有this上下文,所以可以访问外部的this

  我们可以通过call、apply、bind动态绑定

  函数是Function类的实例,可以动态创建

 

 

课堂笔记 2021.8.27 JS基础 下

 

 

 

JS对象(1)

 

构造

对象是最基础的复合类型,它是一组属性的集合。对象有几种构造方式。

  通过字面量构造

  通过构造器构造

  通过原型构造

 

 

 课堂笔记 2021.8.27 JS基础 下

 

 

构造器与类

  JavaScript是面向对象的编程语言,对象默认的构造器是Object,我们可以定义函数作为构造器或者定义class。

课堂笔记 2021.8.27 JS基础 下

 

 

课堂笔记 2021.8.27 JS基础 下

 

课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

课堂笔记 2021.8.27 JS基础 下

 

课堂笔记 2021.8.27 JS基础 下

 

课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 

 

 总结

  对象构造:字面量、构造器、原型

  函数构造器与class

  属性定义:标识符、字符串、表达式

  属性访问:. 和 [ ]

  属性的遍历和增改删

  原型机制

  原型链和类继承

课堂笔记 2021.8.27 JS基础 下

 

 

 

JS对象(2)

 

课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

 

 课堂笔记 2021.8.27 JS基础 下

 

 课堂笔记 2021.8.27 JS基础 下

 

错题情况:

课堂笔记 2021.8.27 JS基础 下

 

上一篇:es6的迭代器和生成器


下一篇:Idea中Java项目—Cannot resolve symbol