2024-11-15 日报 Day7
今日的鸡汤
无人扶我青云志,我自踏雪至山巅。
今日学习内容
1、《JavaScript数据结构与算法》 P1-53
今日笔记
1、JS的基本数据类型有: Undefined、Null、Boolean、Number、String、Symbol、BigInt。
2、JS的引用数据类型有: Object、Array、Function、Date、RegExp、Error。
3、JS中的真值和假值:
数值类型 | 转换成布尔值 |
---|---|
undefined | false |
null | false |
布尔值 | true时true false时false |
数字 | +0、-0和NaN都是false,其他都是true |
字符串 | 如果字符串是空的(长度是0)就是false,其他都是true |
对象 | true |
4、相等运算符( == 和 === )
- ==
类型(x) | 类型(y) | 结果 |
---|---|---|
null | undefined | True |
undefined | null | True |
数字 | 字符串 | x == toNumber(y) |
字符串 | 数字 | toNumber(x) == y |
布尔值 | 任何类型 | toNumber(x) == y |
任何类型 | 布尔值 | x == toNumber(y) |
字符串或数字 | 对象 | x == toPrimitive(y) |
对象 | 字符串或数字 | toPrimitive(x) == y |
toNumber
值类型 | 结果 |
---|---|
undefined | NaN |
null | +0 |
布尔值 | 如果是true,返回1;如果是false,返回+0; |
数字 | 数字对应的值 |
字符串 | 将字符串解析成数字。如果字符串中包含字母,返回NaN;如果是由数字字符组成的,转换成数字 |
对象 | Number(toPrimitive(value)) |
toPrimitive
值类型 | 结果 |
---|---|
对象 | 如果对象的valueOf方法的结果是原始值,返回原始值。如果对象的toString方法返回原始值,就返回这个值;其他情况都返回一个错误。 |
- ===
类型(x) | 值 | 结果 |
---|---|---|
数字 | x和y数值相同(但不是NaN) | true |
字符串 | x和y是相同的字符 | true |
布尔值 | x和y都是true或false | true |
对象 | x和y引用同一个对象 | true |
5、在类的定义里声明每个实例都会创建自己的函数副本。使用原型方法可以节约内存和降低实例化的开销。不过原型方法只能声明公共函数和属性,而类定义可以声明只在类的内部访问的私有函数和属性。
6、ES6展开运算符(…)可以将数组展开成参数列表,也可以将对象展开成键值对列表。
1 | var params = [3, 4, 5]; |
等价于
1 | function restParamaterFunction (x, y) { |
7、ES6引入了数组解构的概念,可以用来一次初始化多个变量。
8、虽然ES6引入了声明类的方法但是JavaScript仍然是基于原型的。类只是原型的语法糖。使用新的类语法可以为属性创建存取器函数。
1 | class Person { |