
JavaScript
Banana_Yzy
这个作者很懒,什么都没留下…
展开
-
手写promise
// 手写一个promise function pro (executor){ let _this = this; _this.$$status = 'pending' _this.failCallback = undefined; _this.successCallback = undefined; _this.error = undefined ; setTimeout(_=>{ executor(_this.resolve.bind(_this),_this.reject.bin原创 2021-05-11 16:41:34 · 113 阅读 · 0 评论 -
原型链粗解
首先,es6中的类,实际上是方法的语法糖 prototype 是函数的属性,函数的prototype指向了一个对象,这个对象是调用该构造函数而创建的实例的原型。 原型就是,每个js对象在创建时,都会关联一个原型对象,对象从原型中继承属性。 class A { constructor(age){ this.age = age; } getAge(){ return this.age; } } 等价于 function A (age){ this.age = age ; } A.pr原创 2021-04-29 15:17:38 · 102 阅读 · 0 评论 -
白屏时间/用户可操作时间/总下载时间的时间
白屏时间是指浏览器从响应用户输入网址地址,到浏览器开始显示内容的时间。 白屏时间 = 地址栏输入网址后回车 - 浏览器出现第一个元素 影响白屏时间的因素:网络,服务端性能,前端页面结构设计。 首屏时间是指浏览器从响应用户输入网络地址,到首屏内容渲染完成的时间。 首屏时间 = 地址栏输入网址后回车 - 浏览器第一屏渲染完成 影响首屏时间的因素:白屏时间,资源下载执行时间。 <!DOCTYPE html> <html lang="en"> <head> <met原创 2021-04-17 10:15:56 · 369 阅读 · 0 评论 -
手写一个call/bind/apply
var year = 2021 function getDate(month, day) { console.log( this.year + '-' + month + '-' + day) } let obj = {year: 2022} ~function(){ function callSelf(context, ...args) { if (typeof this !== 'function'){ throw new TypeError('error') } let key =原创 2021-04-09 17:59:01 · 79 阅读 · 0 评论 -
【js】创建一个新对象时,发生了什么
function _new(){ let target = {} // 创建一个空对象 // 第一个参数是构造函数 let [constructor,...args] = [...arguments] // 执行[[原型]]链接;target是constructor的实例 target.__proto__ = constructor.prototype; // 执行构造函数,将属性或方法,添加到创建的空对象上 let result = constructor.apply(tar.原创 2021-04-09 10:46:54 · 115 阅读 · 0 评论 -
正则表达式初阶
定义一个正则表达式 /正则表达式/修饰符 new RegExp(‘正则表达式’,’修饰符’) 修饰符有三种 g:全局匹配 i:不区分大小写 m:多行匹配 例如: var a= /hello \w{3,12}/g var b=new RegExp("hello \\\w{3,12}",'g' ) 对象调用RegExp中的方法 test() 检测字符串中指定的值,返回true or false exec() compile() 该方法用于改变RegExp,既可以改变检索模式,又可以添加or原创 2020-09-08 10:22:55 · 102 阅读 · 0 评论 -
js中call和apply
做牛客上的测试题,里面有这道,我好像完全从来没有听过这个东西… call 和apply的作用都是 在特定的作用域调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。 区别是两者参数的不同 对于call(),第一个参数是运行函数的作用域,其余参数都直接传递给函数即传递给函数的参数必须逐个列举出来。 对于apply(),第一个参数是 运行函数的作用域 ,另一个参数是参数数组,可以是Array实例或arguments对象。 ...原创 2020-05-10 19:59:55 · 107 阅读 · 0 评论 -
前端优化方法
watch可以监控当前断定啊的所在所用域的任何表达式的后果 watch栏下面的call stack表示了这个函数的调用堆栈(这个函数在之前被那些函数所调用等等)原创 2019-07-15 14:02:11 · 107 阅读 · 0 评论 -
JS中的动态ID
$("#gxpt").on("click","#txpt_tsbh",function(){ // some codes; } ); on方法包含很多事件,点击,双击等等事件。$(document).on(‘click’,’.className’,function(){})是将指定的事件绑定在document上,而新产生的元素如果符合指定的元素,就能够触发事件。 ...原创 2019-07-17 15:50:29 · 2735 阅读 · 0 评论 -
ES6中的箭头函数
JavaScript是ES6中的arrow function Const Plot =(superClass)=>class extends superClass { constructor(coordinates){ super (coordinates; this.updatePoint.bind(this); } } 此处的superclass表的是继承对象的类型 ...原创 2019-07-15 16:16:31 · 160 阅读 · 0 评论 -
ES6 细节
import 用于在一个模块中 加载另一个含有export接口的模块 export 用于在对外输出本模块(本文件、变量)的接口 export default的命令用于指定模块(类)的默认输出,且一个模块只能有一个默认输出,在一个模块中只能使用一次export default,default的本质是一个变量,后面不能添加变量声明语句。 ...原创 2019-07-15 14:00:18 · 100 阅读 · 0 评论