浏览器存储方案 localStorage & sessionStorage localStorage:(1) 定义: 本地存储,提供的是一种永久性的存储方法,在关闭掉网页重新打开时,存储的内容依然保留 sessionStorage:(1) 定义: 会话存储,提供的是本次会话的存储,在关闭掉会话时(浏览器本身或者浏览器标签页),存储的内容会被清除 备注: 同一域名下localStorage可以共享, 2022-04-14 JavaScript JavaScript html5
JSON & JSON序列化 & JSON解析 什么是JSON? 定义: 是一种非常重要的数据格式,不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。 JSON序列化 JSON.stringify( ) 定义: 将值转为JSON字符串 参数: target, foramt, spaceformat: 用来指定数据序列化的数据或者修改数据内容 /* 指定数据序列化 这里需要传递一个指定内容的数组 */ let 2022-04-14 JavaScript JavaScript
包管理工具和命令介绍 包管理工具 npm ( Node Package Manager )(1) 定义: Node包管理器,但是目前已经不限于Node,包括前端的其它工程(2) 安装: 下载Node环境之后自动安装对应版本(3) 上传/下载: 都是在registry这个仓库进行上传下载的(4) 初始化项目: npm init / npm init -y(5) 版本号: X.Y.Z i. X 大版本更新,可能会有多个 2022-04-14 JavaScript JavaScript npm yarn npx
ES Module解析过程 ES Module解析过程 构建 根据地址查找js文件,并且下载,将其静态分析成模块记录(Module Record) 备注: 重复引用的文件不会重新下载,会有一个映射关系记录文件下载的状态,如果已经下载完成则不会再下载,进行一个缓存 实例化 对模块记录进行实例化,并且分配内存空间,只解析模块的导入和导出语句,把模块指向对应的内存地址( 此时导出和导入的值都是undefined,因为代码没有 2022-04-14 JavaScript JavaScript ES6
ES Module 定义 使用关键字import进行导入 export 进行导出,并默认开启严格模式 导出方式 export(1) 定义: 声明语句导出(2) 用法1: 后面可以直接跟声明语句 export const name = 'nano' export function add(){} export class Person { } 2022-04-14 JavaScript JavaScript ES6
模块化 模块化 定义: 将程序分成一个个小的模块,在这个模块中编写属于自己的逻辑代码,有自己的作用域,不会影响到其他的结构。整个模块可以将自己希望暴露的变量、函数、对象等导出给其它模块使用;也可以通过某种方式,导入另外模块中的变量、函数、对象等。 CommonJS [Node/WebPack](1) 在Node中每一个js文件都是一个单独的模块(2) CommonJS规范的核心变量: exports、m 2022-04-13 JavaScript JavaScript NodeJs
错误处理方案 错误处理方案 throw 抛出异常,阻止后续代码执行 // 抛出异常 throw new Error( ) // 抛出类型异常 throw new TypeError( ) // 抛出语法异常 throw SyntaxError( ) // 抛出下标值越界异常 throw RangeError( ) 异常 2022-04-13 JavaScript JavaScript
进程&线程&事件循环 进程和线程的关系 Q:什么是进程和线程?A: 进程( process ): 计算机已经运行的程序,是操作系统管理程序的一种方式 线程( thread ): 操作系统能够运行运算调度的最小单位,通常情况下包含在进程中,每个进程至少会有一个线程用来执行程序中的代码,一般称这个线程为主线程 所以说 进程是线程的容器 JavaScript线程 定义: JavaScript是单线程的,进程容器就是: 2022-04-13 JavaScript JavaScript
async await 定义 本质是Generator函数和Promise的语法糖(源码类似于上面的代码) 解释:(1) async(异步的) : 用于声明一个异步函数(2) await : 必须与async搭配使用 async(异步函数) 使用 async function foo (){ console.log(1) } console.log(0) foo() console.lo 2022-04-13 JavaScript JavaScript ES8
Generator 解决异步方案 示例代码 /* 封装promise异步函数 */ let requestData=(param) => { return new Promise((resolve,reject) => { setTimeout(() => { 2022-04-13 JavaScript JavaScript ES6