学习资料来源:MDN文档:(MDN-JS)[https://developer.mozilla.org/zh-CN/docs/Web/JavaScript]
数据
- 定义数据
- var,let.const
- 定义变量的关键词
- var有变量提升的问题,变量位置在解释前全部提前到文件开头解析
- 数据类型
- 布尔
- bool
- true/false
- bool
- 数字
- Number
- int+float
- BigInt
- 任意精度数字
- Number
- 字符
- String
- 静态字符数组(动态数组详见于数据容器部分)
- String
- 空值
- null
- 类似C的空指针,这个变量在栈上只有key,value没有任何数据
- 关于栈内存,详件于(计算机原理)
- undefined
- 类似null,区别在于null是人为留空,undefined是解释器自己留空
- null
- 其他
- object(不能算是基础数据类型)
- JavaScript,{}就能创建一个对象,写起来跟面向对象差不多,不需要写class和this
- symbol
- 不懂,没用过
- object(不能算是基础数据类型)
- 布尔
- 类型转换
- 显式转换
- 转数字:
- 严格:
Number() - 严格:
BigInt() - 宽松:
parseInt()/parseFloat()
- 严格:
- 转字符串:
String()
- 转布尔值:
Boolean()
- 转对象
Object()
- 转数字:
- 隐式转换
- 懒得看,遇到问题了再记录
- 显式转换
- 类型判断
isFinite()- 有限数
isInteger()- 整形
isNaN()- NaN
isSafeInteger()- 安全整形
- 数据容器
- 动态数组(list对象)
- 属性
- 长度:
length()
- 长度:
- 方法
- 增
- 压栈:
push() - 拼接:
concat() - 插入:
splice(,,)
- 压栈:
- 删
- 出栈:
pop() - 去除:
splice(起,个数)
- 出栈:
- 改
- 替换:
splice(起,个数,新元素) - 反转:
reverse() - 排序:
sort(比较函数)
- 替换:
- 查
- 首个:
find(条件) - 截取:
slice(m,n) - 过滤:
fliter(条件) - 重组:
map(条件)
- 首个:
- 遍历
- 循环:
for_of - 循环回调:
forEach(条件)
- 循环:
- 增
- 属性
- 动态字符(string对象)
- 属性
- 长度:
length()
- 长度:
- 方法
- 增
- 拼接:
concat() - 填充:
padStart()/padEnd()
- 拼接:
- 删
- 去白:
trim()/trimStart()/trimEnd()
- 去白:
- 改
- 大小:
toLowerCase()/toUpperCase() - 切片:
slice(m,n)
- 大小:
- 查
- 正则:
match() - 分隔:
split() - 首位:
startWith()/endWith()
- 正则:
- 增
- 属性
- 动态集合(set对象)
- 属性
- 个数:
size()
- 个数:
- 方法
- 增
- 增单:
add(x)
- 增单:
- 删
- 删除:
delete(x) - 清空:
clear()
- 删除:
- 改
- 查
- 包含:
has(x)
- 包含:
- 遍历
- 循环:
for_of - 转[]:
Array.from()
- 循环:
- 增
- 属性
- 动态字典(map对象)
- 属性
- 个数:
size()
- 个数:
- 方法
- 增
- 增单:
set(k,v)
- 增单:
- 删
- 删除:
delete(k) - 清空:
clear()
- 删除:
- 改
- 覆盖:
set(k,v)
- 覆盖:
- 查
- 获取:
get(k) - 查存:
has(k)
- 获取:
- 遍历
- 循环:
for_of
- 循环:
- 增
- 属性
- 动态对象(object对象)
- 属性
- 统计:
Object.keys(o).length
- 统计:
- 方法
- 增
- 新增:
o.key = 值 - 合并:
Object.assign(目标, 源)
- 新增:
- 删
- 删除:
delete o.key
- 删除:
- 改
- 覆盖:
o.key = 值
- 覆盖:
- 查
- 取值:
o.key/o['key'] - 查存:
'key' in o/o.hasOwnProperty('key') - 键值列表:
Object.keys(o)/values(o)/entries(o)
- 取值:
- 遍历
- 循环:
for_in
- 循环:
- 增
- 属性
- 动态数组(list对象)
- json
- json转js:
JSON.parse(str) - js转json:
JSON.stringify(value)
- json转js:
函数
- 流程控制
- 条件
- if -> else if -> else
- switch case
- 循环
- for
- while
- 错误处理
- try catch
- 条件
- 函数
- function关键字
- 匿名函数
- 相较于具名函数
- 少了一份name引用
- 没有函数声明提升的问题
- 相较于具名函数
- 闭包
- 作用域链:
- 变量:子级可用祖级,反之不行
- 函数:同上
- 生命周期
- 创建:祖级调用,创建沙盒环境,子级创建时
- 运行:沙盒创建完后,调用自己时运行
- 消除:与祖级弱相关,无引用则消除
- 作用域链:
- 箭头函数
- 类型:
- 匿名函数的一种
- 类型:
- 预定义函数
- JavaScript语言的顶层工具函数