第一章 简介
- [p7] document.write() 可以直接把值写到页面上
- [p11] 对象的值始终为true,即使空对象也是如此。
- [p19] 断点:继续执行、进入方法的调用、跳至下一行代码、重新执行、停止执行。
第二章 ES&TS概述
-
[p29] 在ES5中,我们可以使用apply()函数把数组转化为参数。在ES6中,可以用展开运算符(...)。
-
[p32] 尽管JavaScript中声明类的新方式所用的语法和java、c++等其他编程语言类似,但是JavaScript面向对象编程还是基于原型实现的。
-
[p35] 只有一个成员时,可以使用export default导出,这时的导入import不需要用{}。使用export导出多个成员时,import引入时需要放在{}里。
-
[p40] ts有类型推断机制,会根据为变量赋的值自动给该变量设置一个类型。
- 那么,什么时候需要给变量设置类型呢?
- 如果声明了一个变量,但没有设置其初始值,推荐为其设置一个类型。
- 如果没有为变量设置类型,他的类型会被自动设置为any,意思是可以接收任何值。
-
[p42] 代码补全以及类型和错误检查只在编译时是可用的。
第三章 数组
-
数组是最简单的数据结构。
-
我们应该尽量用数组存储同一种类型的值。
-
[p47] 在js中,数组是一个可修改的对象。如果添加元素,他就会动态增长。在c和java里,要决定数组的大小,想要添加元素就要创建一个新的数组。
-
[p49] 从数组开头删除元素
-
通过push和pop可以模拟栈;通过unshift和shift可以模拟队列。
let numbers = ['zero','one','two','three','four'];
// iterator:返回一个包含数组键值对的迭代器对象。所有迭代完后会返回undefined。
let iterator = numbers[Symbol.iterator]();
console.log('@@@@@@@@@@@@@');
console.log(iterator);
// 返回[index, value]的value。
console.log(iterator.next().value); // zero
console.log(iterator.next().value); // one
console.log('@@@@@@@@@@@@@');
// for...of
for(const n of iterator) {
console.log(n);
}
// entries
let myEntries = numbers.entries();
console.log('************');
console.log(myEntries);
// 返回[index, value]
console.log(myEntries.next().value); // [0, 'zero']
console.log(myEntries.next().value); // [1, 'one']
console.log('************');
// keys
let myKeys = numbers.keys();
console.log('$$$$$$$$$$$');
console.log(myKeys);
// 返回{value: index, done: boolean(是否完成迭代)} =》 {value: undefined, done: true}
console.log(myKeys.next()); // { value: 0, done: false }
console.log(myKeys.next()); // { value: 1, done: false }
console.log('$$$$$$$$$$$');
// from: 根据已有数组创建新数组
let numbers2 = Array.from(numbers);
let numbers3 = Array.from(numbers, x => x%2 === 0);
console.log('numbers2', numbers2);
console.log('numbers3', numbers3);
// Array.of: 创建一个新数组
let numbers4 = Array.of(1,2);
let number4Copy = Array.of(...numbers4);
// fill: 填充
let numbers5 = [0,1,2,3];
numbers5.fill(9,1,3);
console.log('numbers5',numbers5);
// 创建并初始化数组时很好用
let arr = Array(6).fill(1);
// copyWithIn: 复制数组中一系列元素到同一数组的起始位置
let array = [0,1,2,3,4,5]
console.log(array.copyWithin(0,3,5));