
javascript
Hong Jet
这个作者很懒,什么都没留下…
展开
-
本地项目开启http-server服务
项目用到jquery,需要用load()加载公共模块的方法,如果没有服务支持,会报跨域报错。处理这种报错的方式有很多种方法,下面介绍一种使用本地开启http-server服务的处理方式如项目中没有开启服务使用load();加载模块下面报错底部空白处理方式本地先安装node服务;然后安装http-servernpm i http-server -g 或者 npm i http-server所在项目中运行打开cmd命令行,输入http-server 或者在vscode编辑器中终端打原创 2020-12-04 10:00:18 · 2330 阅读 · 0 评论 -
Generator函数
Generator 函数是 ES6 提供的一种异步编程解决方案(异步编程方式有:回调函数 、事件监听、 发布/订阅者 、 Promise对象)。语法上,可以把理解成,Generator 函数是一个状态机,封装了多个内部状态。定义Gernerator函数function*test(){ yield 'hello' yield 'word' return 'ok'; ...原创 2019-06-14 14:30:30 · 347 阅读 · 0 评论 -
Proxy 和 Reflect
Proxy 字面意思代理,可以理解为一个构造函数,var proxy = new Proxy(target, handler);上述生成 Proxy 实例,其实是一个object的变种,可以在handler里面做一些自己想要做的逻辑,修改原有语言定义好的功能改造成你自己想要的效果。target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为。 var obj =...原创 2019-06-14 15:14:11 · 1011 阅读 · 0 评论 -
Class
ES6的类,其实是一个语法糖,完全可以看作构造函数的另一种写法。class Point { // ...}typeof Point // "function"Point === Point.prototype.constructor // true上面代码表明,类的数据类型就是函数,类本身就指向构造函数。那跟传统构造函数又有啥区别?通过构造函数,定义并生成新对象。下面是一个例子。...原创 2019-06-14 17:28:39 · 128 阅读 · 0 评论 -
call,apply,bind
call,apply,bind都是用来改变this指向,调用一个方法,看下例 var person = { name:"jet li", say:function(){ console.log(this.name); } } var fn = person.say; fn() // Cannot read property 'nam...原创 2019-06-21 11:26:50 · 134 阅读 · 0 评论 -
函数作用域和闭包
通过上面作用域链就可以看出 外函数为什么不能访问内层函数的变量(b doing作用域链里面没有c AO 访问不了cAO)原创 2019-07-07 20:49:38 · 188 阅读 · 0 评论 -
setTimeout、Promise、Async/Await 的区别
一、event loopJS主线程不断的循环往复的从任务队列中读取任务,执行任务,这中运行机制称为事件循环(event loop)。二、Microtasks、MacrotasksMicrotasks和Macrotasks是异步任务的一种类型,Microtasks的优先级要高于Macrotasks,下面是它们所包含的api:microtasks process.nextTick prom...原创 2019-07-11 14:32:16 · 1113 阅读 · 0 评论 -
防抖和节流
在前端开发中会遇到一些频繁的事件触发,比如keyup、keydown、滚动加载请求…频繁的触发会导致卡顿。防抖的原理:一定在事件触发 n 秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,那我就以新的事件的时间为准,n 秒后才执行,总之,就是要等你触发完事件 n 秒内不再触发事件<input id="inp"/> function debounce(func,...原创 2019-07-18 10:01:13 · 247 阅读 · 0 评论 -
函数的预编译
js是一门解释性语言 执行分三步:语法解析、预编译、解释执行。下面分析一下预编译过程(预编译发生在函数执行前的一刻)预编译分为四步:1 创建OA对象2 找到形参和变量声明,将变量和形参数名作为OA属性并且赋值为undefined3 将实参和形参对号赋值4 在函数体里面找到函数声明(如果函数体里面有函数声明),值就是函数体...原创 2019-07-07 15:21:44 · 465 阅读 · 0 评论 -
prototype和__proto__
prototype和__proto__关系图概念prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象。它是显示修改对象的原型的属性。__proto__是一个对象拥有的内置属性,是JS内部使用寻找原型链的属性。跟浏览器环境有关,IE不可以访问var Person = function(){};var p = new Person(...原创 2019-06-19 11:14:50 · 2471 阅读 · 0 评论 -
async和await的使用
async其实是ES7的才有的,其实是异步操作的进化,其实就是封装一个Promise的对象返回 async function test(){ return 1111 } console.log(test()) //Promise {<resolved>: 1111}async方法在普通的函数前加上"async"关键字即可。执行这个函数,发现并没有返...原创 2019-06-14 11:19:58 · 419 阅读 · 0 评论 -
js数组去重
方法1:根据indexof()判断var arr = [1,3,3,4,4,46,78,88];function unique(arr){var tempArr = []arr.map(item=>{if(tempArr.indexOf(item)<0){tempArr.push(item)}})return tempArr}console.log(unique(...原创 2019-05-06 11:52:34 · 102 阅读 · 0 评论 -
数组内元素出现次数统计
通过对象key和value进行统计原创 2019-05-06 11:59:24 · 809 阅读 · 0 评论 -
js对象深拷贝
1 使用JSON.stringify()与JSON.parse()var obj={name:‘zheng’,age:20}var temp = JSON.stringify(obj)var tempObj = JSON.parse(temp)tempObj.name=‘haha’console.log(tempObj)//{name: “haha”, age: 20}conso...原创 2019-05-06 13:54:00 · 191 阅读 · 0 评论 -
js数组排序
数组排序可用sort()var arr = [90,20,1,3,4,46,78,88];arr.sort(function(a,b){return a - b//反序可用return b - a})/console.log(arr)// [1, 3, 4, 20, 46, 78, 88, 90]如果有三个对象,里面根据年龄大小排序var obj={age:20}var obj...原创 2019-05-06 14:06:16 · 117 阅读 · 0 评论 -
js执行步骤
js执行简单来说分成三步:语法解析、预编译、解释执行。语法解析报错会提示syntaxError, 比如括哈不配对, 字符串少了 另一半的引号, 那么一开始就不会执行。预编译分四步:1 创建AO对象、2 找形参和变量名,讲变量和形参名作为AO属性名并将值赋值为undefined,3 将形参和实参统一、 4 在函数体内找出函数声明,赋值给函数体解释执行:按从上到下解释执行,虽然上面两步已经正确走...原创 2019-05-06 14:20:41 · 692 阅读 · 0 评论 -
for...in与for...of区别
for … of是作为ES6新增的遍历方式,允许遍历一个含有iterator接口的数据结构并且返回各项的值,和ES3中的for … in的区别如下1–for … of遍历获取的是对象的键值,for … in 获取的是对象的键名2–for … in会遍历对象的整个原型链,性能非常差不推荐使用,而for … of只遍历当前对象不会遍历原型链3–对于数组的遍历,for … in会返回数组中所有可枚...原创 2019-06-12 14:37:16 · 27861 阅读 · 0 评论 -
Promise的使用
一个 Promise 就是一个对象,它代表了一个异步操作的最终完成或者失败。本质上,Promise 是一个绑定了回调的对象,而不是将回调传进函数内部。假设,现有一个名为 createAudioFileAsync() 的函数,在给定的配置文件和两个回调函数的情况下,这个函数能异步地生成声音文件。传统写法如下:// 成功的回调函数function successCallback(result) ...原创 2019-06-14 09:51:23 · 199 阅读 · 0 评论