
js
星耀199
这个作者很懒,什么都没留下…
展开
-
相机-threejs
相机类型three.js中提供了两种基本的照相机,分别是正投影相机OrthographicCamera和透视投影相机PerspectiveCamera。透视投影照相机对应投影到的物体的大小是随着距离逐渐变小的,而正投影照相机投影到的物体大小是不受距离影响的透视投影相机PerspectiveCamera透视投影照相机对应投影到的物体的大小是随着距离逐渐变小的,它是3D场景的渲染中使用得最普遍的投影模式,创建一个简单透视投影相机的代码如下var camera = new THREE.Perspe原创 2020-08-21 11:18:57 · 582 阅读 · 0 评论 -
防抖,节流手写
节流 :在超过设置时间执行function fn(){ console.log('执行了')}//节流window.addEventListener('scroll',throttle(fn,1000))function throttle(fn,delay){ let old = 0 let context=null return function (){ let now = new Date().valueOf() context原创 2020-08-05 09:15:44 · 168 阅读 · 0 评论 -
es5继承手写
es5继承最优组合function Parent(name,age){ this.name = name this.age = age}function Child(){ Parent.apply(this) }Child.prototype = Object.create(Parent.prototype)Child.prototype.constructor = Child let p =new Parent()let c = new Child()原创 2020-08-05 09:12:07 · 299 阅读 · 0 评论 -
正则基本概念
先了解一下正则语法量词元字符量词元字符解释*0到多次+1到多次?0到1次{ n}n次{n,}n到多次{n,m}n到m次特殊元字符特殊元字符解释\d0到9的 任意一个\D不是0到9\w任意字母数字下划线\s空白符\n[ ]表示其中内字符任意一个[ ^]表示不...原创 2020-07-17 16:25:29 · 323 阅读 · 0 评论 -
js手册之基本类型及判断方法
js数据类型基本数据类型Numberstringbooleannullundefinedbigintsymbol引用类型objectfunction (Function.prototype = function.proto)判断类型方法typeof 缺点:不能判断object属于哪个类instaceofObject.prototype.toStri...原创 2020-04-22 09:56:23 · 117 阅读 · 0 评论 -
js手册之reduce和isArray解析和使用
先看源码Array.prototype.myReduce = function(callback,initValue){//设置长度 var len = this.length //初始化pre var pre = initValue var i=0; //判断initValue有没有,没有的话就从第一个开始 if(initValue==nul...原创 2019-12-30 13:15:18 · 227 阅读 · 0 评论 -
手写一个深拷贝
我们最常用的是json.parse(json.stringfy(data))来进行深拷贝,但是这有一些问题对于undefined,函数,Symbol会直接忽略new Date()转换后结果不正确对于正则转换为{}对于循环引用,会报错如果obj里有NaN、Infinity和-Infinity,则序列化的结果会变成nullunction isObject(val){//判断是否是对象...原创 2019-12-23 10:15:46 · 267 阅读 · 0 评论 -
bind原理
bind一般是面试必问的问题,更有甚者会让你当他面把原理写出来,连百度机会都不给你注意先要懂call,apply的原理,然后你就懂我下面写的代码了,若看不懂的可以看我之前call,apply的原理的文章,再看就懂了Function.prototype.textBind= function (context){ let target = this return function...原创 2019-12-20 15:47:44 · 115 阅读 · 0 评论 -
apply原理
他其实和call差不多只不过是参数变了,话不多说直接看代码unction.prototype.textApply= function(context){ //context有值得话就是a.call(foo)//代表context==foo context = context || window //这个是this没有改变函数作用域的 a.call(foo)这个this代表...原创 2019-12-20 15:41:28 · 281 阅读 · 0 评论 -
探究call到底是怎么回事来的
这个其实用处不大,大家都知道怎么用,但是一般面试有可能问,并且现在前端越来越多,但是公司现在也是越来越挑了,那一般他感觉是不是你是中高级的怎么看,只能考察vue,react,promsise,bind()相关原理或者源码,当然这也是你自我提升的好办法Function.prototype.textCall=function(context){ //context有值得话就是a.call(f...原创 2019-12-20 15:09:18 · 178 阅读 · 0 评论 -
async await 是如何实现的
注意:如果promise不是太懂请看我之前文章有关于promise原理实现首先大家都知道async await 是解决异步的,在网上搜的说它就是promise的语法糖,那么他究竟是如何用promise实现的呢,我举个列子大家就懂了先看asyncasync function getConstant() { return 1}//原理function getConstant() ...原创 2019-12-20 14:42:04 · 824 阅读 · 0 评论 -
promise原理手写
Promse基本配置class Promise { constructor(exector){ this.initValue() this.bindThis() try{ exector(this.resolve,this.reject) }catch(e){ this.rej...原创 2019-12-16 17:00:17 · 116 阅读 · 0 评论 -
兼容IE8常见问题
由于自己接受了一个兼容IE8的系统,在一些问题上做一个总结1. 不能够使用css32. 不能够使用flex布局3. 使用float两栏布局Ie8和谷歌浏览器方向相反4. 在js中consle在上线前一定要全部去掉,因为Ie8中如果有console.log会报错5. 上传文件时不能够使用formdata6. css中calc不能够使用...原创 2019-11-21 09:41:07 · 184 阅读 · 0 评论 -
快速排序,冒泡排序
**快速排序**let arr = [1,4,3,7,9,5,7,2,10,8]; fn(arr,0,arr.length-1); function fn(arr,low,height){ if(low>=height){ return; } let i = low; le...原创 2019-06-05 16:00:55 · 294 阅读 · 0 评论 -
js相关知识点
数组push,pop, unshift shift slice splice concat join subString sort reserve indexOf lastIndexOf map f...原创 2019-06-15 09:31:23 · 97 阅读 · 0 评论 -
前端导出excel和图片
介绍Blob一直以来,JS都没有比较好的可以直接处理二进制的方法。而Blob的存在,允许我们可以通过JS直接操作二进制数据。一个Blob对象就是一个包含有只读原始数据的类文件对象。Blob对象中的数据并不一定得是JavaScript中的原生形式。File接口基于Blob,继承了Blob的功能,并且扩展支持了用户计算机上的本地文件。示例this.$api.downloadFile(url, ...原创 2019-07-02 14:50:58 · 2268 阅读 · 0 评论 -
深层解读Vue—Vue双向绑定
首先我们要知道Vue双向绑定的几个概念1.comple(解析器):主要是用来解析你的节点、子节点、属性(w-on: ,w-html,w-model)2.observe(观察者):主要是来对data中的属性进行监听( Object.defineProperty)3.watcher(订阅者):主要是用来接受数据变化,进而实现视图更新好了直接撸代码吧<!DOCTYPE html>...原创 2019-07-12 16:16:34 · 251 阅读 · 0 评论 -
JS手册—常用正则表达式
1、 手机号:mobile/^1((3[\d])|(4[5,6,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[1-3,5-8])|(9[1,8,9]))\d{8}$/2、国内座机电话(如: 010-12345678):telephone/\d{3}-\d{8}|\d{4}-\d{7}/3、电话或手机:phoneNo/(^ 1 ([ 3 | 4 | 5 |...转载 2019-07-22 09:36:03 · 495 阅读 · 0 评论 -
js手册—事件循环、宏任务、微任务
先了解什么是宏、微任务宏任务: 包括整体代码script、setTimeout,setInterval微任务队列:promise,process.nexttick,Object.observe(已经不用了),Mutation.observe话不多说直接撸代码吧//js执行顺序从上往下执行console.log('1')//第一次首先执行宏任务setTimeout(function(...原创 2019-08-01 11:01:13 · 129 阅读 · 0 评论 -
浅析js堆的内存
堆:是占内存空间的,每一个内存都有它独特的标记,它是由16进制展现出来的,例如 let arr=[1,2,3];当我们console.log(arr);//[1,2,3]这和堆有什么关系呢注意:我们可以这样理解其实它是一个地址值,只不过是重写了arr=16进制的地址——>内存地址——>[1,2,3]当重写toString之后就是[1,2,3]...原创 2019-04-26 14:05:45 · 137 阅读 · 0 评论