摘要: 1. 语法 最佳实践及注意事项: 标识符使用小驼峰 始终在控制语句中使用代码块,即使要执行的只有一条语句 2. 关键字和保留字 最佳实践及注意事项: 不要使用关键字和保留字作为标识符和属性名,以确保兼容过去和未来的ECMAScript版本 3. 变量 最佳实践及注意事项: 不推荐改变变量保存值的类型 阅读全文
posted @ 2020-12-01 23:26 LiuWango 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 1. script标签 <script>标签的type属性值如果是module,代码会被当成ES6模块,只有在这个时候代码中才能出现import和export关键字 无论是内嵌JS代码还是外联JS代码,在代码被计算完成之前,页面剩余的内容不会被加载,即<script>会造成页面阻塞(阻塞时间包含下载 阅读全文
posted @ 2020-11-30 23:28 LiuWango 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1995年JavaScript问世时主要用途时代替Perl等服务器段语言处理输入验证 1. JavaScript实现 1.1 ECMAScript ECMAScript只是一个标准,由ECMA-262定义并提供核心功能,在基本的层面,它描述了这门语言的:语法、类型、语句、关键字、保留字、操作符、全局 阅读全文
posted @ 2020-11-30 22:30 LiuWango 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 模板字符串 const student = { name: "Wango", age: 24, } // 普通字符串 const info1 = "My name is " + student.name + ", and I'm " + student.age + " years old"; // 阅读全文
posted @ 2020-11-30 15:02 LiuWango 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 1. 跨浏览器注意事项 在选择兼容哪些浏览器时要考虑: 目标受众的期望和需要(由项目确定) 浏览器的市场份额 浏览器支持所需的工作量 不应以牺牲质量赢取覆盖率 2. 五大开发问题 2.1 浏览器的bug和差异 代码必须完全符合浏览器提供的特性。 这需要完整的测试工具,足以覆盖代码和常用的和不常用的用 阅读全文
posted @ 2020-11-29 23:56 LiuWango 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 1. 深入事件循环 事件循环基于两个基本原则: 一次处理一个任务 一个任务开始后直到运行完成,不会被其他任务中断 事件循环通常至少需要两个任务队列: 宏任务队列:鼠标事件、键盘事件、网络事件、HTML解析、计时器事件等 微任务队列:DOM变化、Promises等 两种队列在同一时刻都只执行一个任务 阅读全文
posted @ 2020-11-29 18:26 LiuWango 阅读(92) 评论(0) 推荐(0) 编辑
摘要: *1. 向DOM中注入HTML 1.1 将HTNL字符串转换成DOM 转换的步骤如下所示: 确保HTML字符串是合法有效的 将它包裹在任意符合浏览器规则要求的闭合标签中 使用innerHTML将这串HTML插入到虚拟的DOM元素中 提取该DOM节点 预处理HTML源字符串 // 确保自闭合元素被正确 阅读全文
posted @ 2020-11-28 22:29 LiuWango 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1. 在ES6之前的版本中模块化代码 每个模块系统至少应该能够执行一下操作: 定义模块接口,通过接口可以调用模块的功能 隐藏模块的内部实现,使模块的使用者不需要关注模块内部的实现细节。同时,吟唱模块的内部实现,避免有可能产生的副作用和对bug的不必要修改 1.1 使用对象、闭包和立即执行函数实现模块 阅读全文
posted @ 2020-11-28 00:05 LiuWango 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 为什么需要正则表达式 正则表达式可以用来: 操作HTML节点中的字符串 使用CSS选择器表达式定位部分选择器 判断一个元素是否具有指定的类名(class) 输入校验 其他任务 正则表达式进阶 正则表达式说明 创建正则表达式 // 字面量创建 const pattern = /test/ig; // 阅读全文
posted @ 2020-11-27 21:23 LiuWango 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1. 数组 1.1 创建数组 创建数组有两种基本方式:使用Array构造函数、使用数组字面量[] // 通过构造函数 const subjects = new Array("Chinese", "Math", "English"); // 通过字面量 const fruits = ["apple", 阅读全文
posted @ 2020-11-25 22:34 LiuWango 阅读(177) 评论(0) 推荐(0) 编辑