第一章 JavaScript基础
数据类型
简单数据类型:数、字符串、布尔值、undefined、null、symbol
复杂数据类型:数组、函数、对象、日期、正则表达式
null表示变量没有值(手动赋值了null),undefined表示未赋值
1 | function fn(b=1){ |
运算符
算数运算符:+、-、*、/、%、++、--
赋值运算符:=、+=、-+、*=、/=、%=
比较运算符:==、===、!=、>、>=、<、<=
逻辑运算符:&&、||、!
位运算符:&、|、~、^、<<、>>
位运算符相关操作见:JavaScript 位运算符 (w3school)
真值和假值
| 数值类型 | 转换成布尔值 |
|---|---|
| undefined | false |
| null | false |
| 布尔值 | true为true,false为false |
| 数字 | +0、-0、NaN为false,其他为true(包括负数) |
| 字符串 | 根据长度判断,0为false,其余为true |
| 对象 | true |
⚠️JS对象在判断中永远为true,因此不适合直接用于判断
相等运算符
…(挖坑待补)
控制结构
条件语句:if...else
循环:for、while、do...while
函数
函数参数可以使用arguments访问
JavaScript面向对象编程
class、Function.prototype
第二章 ECMAScript和TypeScript
ES2015<–>ES6
ES2016<–>ES7
ES2017<–>ES8
ES2018<–>ES9
ES.Next
…
ES6新功能
-
let、const:①局部作用域;②let不允许重复定义;③const必须在声明时赋值
-
模版字面量:
{book.name} -
箭头函数:
(a)=>{return a+1}①简化:a=>a+1;②this指向 -
默认参数:ES6之前,设置默认参数需要在函数内使用
if(x===undefined) x=1 -
展开运算符:
...①展开数组;②代替arguments接收参数fn(a,b,...x) -
对象属性增强:①数组解构:
let [x,y] = ["a","b"];②属性简写:{x:x,y:y}写为{x,y} -
使用类进行面向对象编程:①使用class而不是function原型函数表示类并实例化;②继承:
class A extends B{};③属性存取器get、set -
乘方运算符:
2**3 = 8 -
模块化:①
export {}=>import {} from "X.js";②export ...; export...;=>import * as XXX from "X.js"③export default ...=>import ... from "X.js
TypeScript
见博客文章 TS总结
第三章 数组
- 最好用来存储同一种类数据(虽然JS数组可以存储不同类型元素),数组是可修改、动态增长的
创建数组
1 | let arr = new Array(); // 创建空数组 |
数组方法
-
push、pop、shift、unshift
-
concat、every、filter、forEach、join、indexOf、lastIndexOf、map、reverse、slice、some、sort、toString、valueOf
-
ES6新增:@@iterator、copyWithin、entries、includes、find、findIndex、fill、from、keys、of、values