摘要:
可选链(Optional chaining) 可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。 ?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空nullish(null 或者undefined)的情况下不会引起错误,该表达式短路返 阅读全文
posted @ 2023-01-29 13:30
z_bky
阅读(30)
评论(0)
推荐(0)
摘要:
1 模块化概念 1.1 什么是模块化 模块化: 将一个大的js文件拆分成一个个小的js文件,最终通过某种语法组合在一起 模块:一个js文件就是一个模块,只针对js文件处理 特点:模块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法/数据)与外部其它模块通信 1.2 模块化发展历史 使用命名函 阅读全文
posted @ 2023-01-29 13:30
z_bky
阅读(800)
评论(0)
推荐(0)
摘要:
import函数的参数,指定所要加载的模块的位置。 import命令能够接受什么参数,import()函数就能接受什么参数,两者区别主要是后者为动态加载 import()返回一个 Promise 对象。 它是运行时执行,也就是说,什么时候运行到这一句,就会加载指定的模块 <!DOCTYPE html 阅读全文
posted @ 2023-01-29 13:29
z_bky
阅读(82)
评论(0)
推荐(0)
摘要:
1. Promise功能 回调函数嵌套回调函数被称作回调地狱,代码层层嵌套,环环相扣,很明显,逻辑稍微复杂一些,这样的程序就会变得难以维护。代码臃肿,可读性差,耦合度过高。 对于这种情况,程序员们想了很多解决方案(比如将代码模块化),但流程控制上,还是大量嵌套。 ES2015的标准里,Promise 阅读全文
posted @ 2023-01-29 13:29
z_bky
阅读(29)
评论(0)
推荐(0)
摘要:
1 类的由来 JavaScript 语言中,生成实例对象的传统方法是通过构造函数 function Person(name, age) { this.name = name; this.age = age; } Person.prototype = { course: "html5", do() { 阅读全文
posted @ 2023-01-29 13:29
z_bky
阅读(22)
评论(0)
推荐(0)
摘要:
1 什么是Generator Generator 函数是 ES6 提供的一种异步编程解决方案,内部封装了很多的状态,被称作状态机 生成器 执行Generator会返回一个迭代器对象(iterator),使用iterator来遍历出Generator内部的状态 形式上,Generator 函数是一个普 阅读全文
posted @ 2023-01-29 13:28
z_bky
阅读(68)
评论(0)
推荐(0)
摘要:
1 什么是iterator JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接口机制 阅读全文
posted @ 2023-01-29 13:28
z_bky
阅读(36)
评论(0)
推荐(0)
摘要:
1 Set 1.1 什么是Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化 let st = ne 阅读全文
posted @ 2023-01-29 13:27
z_bky
阅读(28)
评论(0)
推荐(0)
摘要:
1 Symbol 1.1 什么是Symbol ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 阅读全文
posted @ 2023-01-29 13:27
z_bky
阅读(33)
评论(0)
推荐(0)
摘要:
1 对象的简写 ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 // 1.属性的简写 let [name, age, sex] = ["xiaowang", 20, "女"]; let p1 = { name: name, age: age, sex: se 阅读全文
posted @ 2023-01-29 13:27
z_bky
阅读(29)
评论(0)
推荐(0)
摘要:
指数运算符 在Math中提供了 pow的方法 用来计算一个值的n次方 ES11 提出了新的方法求一个值的n次方 那就是 ** 操作符 //求 一个数字的 n次方 是一个很大的需求 console.log(Math.pow(3, 3)); console.log(Math.pow(30, 7)); / 阅读全文
posted @ 2023-01-29 13:26
z_bky
阅读(26)
评论(0)
推荐(0)
摘要:
1 函数参数默认值 1.1 ES5默认参数 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function fn1(a, b) { // b = b || "world"; if (typeof b "undefined") { b = "world"; } console.l 阅读全文
posted @ 2023-01-29 13:26
z_bky
阅读(28)
评论(0)
推荐(0)
摘要:
1 扩展运算符 1.1什么是扩展运算符 扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列,目前也可以用来展开数组。 let arr = [1, 2, 3]; console.log(...arr); console.log([1,2,. 阅读全文
posted @ 2023-01-29 13:26
z_bky
阅读(36)
评论(0)
推荐(0)
摘要:
1. 模版字符串 传统的 JavaScript 语言,输出模板通常要拼接字符串 // 原始方法做模版 let data = { message: { title: "今天天气真的很好", todo: "打台球", time: "时间2020.3.25" } } let oOuter = docume 阅读全文
posted @ 2023-01-29 13:25
z_bky
阅读(46)
评论(0)
推荐(0)
摘要:
1. 什么是变量的解构赋值 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 解构赋值 本质就是赋值,把结构解散重构 然后赋值 其实是一种模式的匹配,关键要掌握一一对应关系。 解构赋值作用就是方便赋值。 //1.请把数组arr1中的值分别赋 阅读全文
posted @ 2023-01-29 13:25
z_bky
阅读(37)
评论(0)
推荐(0)
摘要:
1.1 函数作用域 在ES5中,JS的作用域分为全局作用域和局部作用域。通常是用函数区分的,函数内部属于局部作用域。 //ES6之前只有函数才构成局部作用域 //案例1 { var a = 10; } console.log(a); //案例2 console.log(a); if (true) { 阅读全文
posted @ 2023-01-29 13:24
z_bky
阅读(246)
评论(0)
推荐(0)
摘要:
1.1 JS历史 JavaScript 诞生于 1995 年。NetScape发布NetScape Navigator2浏览器,提供了免费开发工具LiveScript,设计的主要目的是处理以前由服务器端语言负责的一些输入验证操作。在人们普遍使用电话拔号上网的年代,能够在客户端完成一些基本的验证任务绝 阅读全文
posted @ 2023-01-29 13:23
z_bky
阅读(53)
评论(0)
推荐(0)