随笔分类 - JavaScript
摘要:Js实现数组排序 常用排序的 实现方案,包括原型链方法调用、简单选择排序、冒泡排序、插入排序、快速排序、希尔排序、堆排序、归并排序。 原型链方法调用 简单选择排序 插入排序 快速排序 希尔排序 堆排序 归并排序 每日一题
阅读全文
摘要:手动实现Promise 是单线程的语言,通过维护执行栈与任务队列而实现了异步操作, 与`Ajax Promise`就是异步操作的一个解决方案,用于表示一个异步操作的最终完成或失败, 及其结果值。 语法 是带有 和`reject Promise executor resolve reject exec
阅读全文
摘要:Js获取数据类型 有着七种基本类型 、`Number Boolean Null Undefined Symbol Object Object`为引用类型。 typeof 或`typeof operand operand`是一个表示对象或原始值的表达式,其类型将被返回。 规则 : : : : : :
阅读全文
摘要:Js遍历对象总结 Js遍历对象的方法主要有for in、Object.keys()、Object.getOwnPropertyNames()、Reflect.ownKeys()、Object.getOwnPropertySymbols()。 for in for in语句以任意顺序迭代对象的可枚举属
阅读全文
摘要:手动实现apply、call、bind 每个 对象都存在 、`call() bind() this`对象的值,以扩充函数赖以运行的作用域。 apply : 必选,在 函数运行时使用的 值, 可能不是该方法看到的实际值,如果这个函数处于非严格模式下,则指定为 或`undefined`时会自动替换为指向
阅读全文
摘要:Js箭头函数 箭头函数是 新增的语法,提供了一种更加简洁的函数书写方式,类似于匿名函数,并且简化了函数定义。 完整写法 完整写法类似于匿名函数,省略了 关键字。 省略小括号 当参数只有 个时,可以省略小括号,当没有参数或者两个以上的参时不能省略小括号。 省略大括号 当函数体只有一行语句时,可以省略
阅读全文
摘要:Js严格模式 JavaScript严格模式strict mode,即在严格的条件下运行。严格模式消除了Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;消除代码运行的一些不安全之处,保证代码运行的安全;提高了引擎的效率,增加运行速度;为未来新的Js版本做好铺垫。 实例 针对整个脚本
阅读全文
摘要:Function与Object JavaScript中内置了两个顶级对象Function、Object,Object是所有对象的基类,而所有的构造函数同时又是Function对象的实例。 Object JavaScript中的所有对象都来自Object,所有对象从Object.prototype继承
阅读全文
摘要:Js继承的实现方式 继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。 原型链继承 通过将子类的原型对象指向父类的实例,实现继承访问父类属性方法等。 // 定义父类 function Parent(){
阅读全文
摘要:Js数组操作 JavaScript数组操作,主要包括Array对象原型方法以及常用操作如去重、扁平化、排序等。 Array.prototype forEach arr.forEach(callback(currentValue [, index [, array]])[, thisArg]) cal
阅读全文
摘要:Js异步机制 JavaScript是一门单线程语言,所谓单线程,就是指一次只能完成一件任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯,坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常
阅读全文
摘要:作用域与作用域链 通常来说,一段程序代码中所用到的名字并不总是有效或可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域scope,当一个方法或成员被声明,他就拥有当前的执行上下文context环境,在有具体值的context中,表达式是可见也都能够被引用,如果一个变量或者其他表达式不在当前
阅读全文
摘要:let与const ES2015(ES6)新增加了两个重要的JavaScript关键字: let和const。 块级作用域 代码块内如果存在let或者const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。 { let a = 1; var b = 2; function s(){r
阅读全文
摘要:Js模块化导入导出 CommonJs、AMD、CMD、ES6都是用于模块化定义中使用的规范,其为了规范化模块的引入与处理模块之间的依赖关系以及解决命名冲突问题,并使用模块化方案来使复杂系统分解为代码结构更合理,可维护性更高的可管理的模块。 CommonJS CommonJS是NodeJs服务器端模块
阅读全文
摘要:JSON WEB TOKEN JSON WEB TOKEN简称为JWT,是一个基于JSON的开放标准,用于通信双方之间传递安全信息的简洁的、URL安全的表述性声明规范,经常用于身份验证。 结构 JWT有三部分组成,他们之间用.分隔,这三部分分别是Header、Payload、Signature,结构
阅读全文
摘要:Js选择器 JS选择器常用的有getElementById()、getElementsByClassName()、getElementsByName()、getElementsByTagName()、querySelector()、querySelectorAll()。 getElementById
阅读全文
摘要:Js中==与 JavaScript中提供==相等运算符与 严格相等运算符,建议是只要变量的数据类型能够确定,一律使用 ,各种类型的值的比较可以参考Js真值表 ==相等运算符 ==在判断相等时会进行隐式的类型转换, 其比较遵循一些原则,即先转换类型再比较。 如果有一个操作数是布尔值,则在比较相等性之前
阅读全文
摘要:Generator函数 生成器generator是ES6标准引入的新的数据类型,一个generator看上去像一个函数,但可以返回多次,通过yield关键字,把函数的执行流挂起,为改变执行流程提供了可能,从而为异步编程提供解决方案。 方法 Generator.prototype.next():返回一
阅读全文
摘要:async/await async是ES7的与异步操作有关的关键字,其返回一个Promise对象,await操作符用于等待一个Promise对象,它只能在异步函数async function内部使用。async/await的目的是简化使用多个promise时的同步行为,并对一组Promises执行某
阅读全文
摘要:Promise对象 JavaScript是单线程的语言,通过维护执行栈与任务队列而实现了异步操作,setTimeout与Ajax就是典型的异步操作,Promise就是异步操作的一个解决方案,用于表示一个异步操作的最终完成或失败及其结果值,Promise有各种开源实现,在ES6中被统一规范,由浏览器直
阅读全文