js基础
newway007
这个作者很懒,什么都没留下…
展开
-
从服务器下载
从服务器下载文件: <div class="uploadBtn" (click)="modeTableDownload1()">下载</div>modeTableDownload1() { const downUrl = `/meta/original_form`; const a = document.createElement('a'); a.setAttribute('href', downUrl); a.click(); }.原创 2020-10-27 14:23:55 · 150 阅读 · 0 评论 -
任意多个的凸包以及具体的需求
刚刚有一个需求,就是想要把路口和路段的区域包裹起来,并且按照它的图形的形状往外扩大一些。(为了美观)首先是一连串点坐标的凸包的计算。先找到坐标点中x轴最小的一个点,这个一定是这个多边形的一个顶点。然后这个点a和任意一个点的所构成的向量,其他的点都在它的一侧,那么另一个点b也是多边形的一个顶点。否则,则不是。然后将b与剩下的任意一个点构成的向量,判断其他点是否在同一侧。这样就可以顺序得到所有多边形的点。这就是凸包。图形扩大的问题。首先先找到这个多边形的中心。这个中心与每个顶点的..原创 2020-10-27 14:23:07 · 231 阅读 · 0 评论 -
建造者模式
我觉得这个写得很有趣,建造者模式可以将一个复杂的对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。也就是说如果我们用了建造者模式,那么用户就需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。建造者模式实际就是一个指挥者,一个建造者,一个使用指挥者调用具体建造者工作得出结果的客户。模式作用:1.分步创建一个复杂的对象2.解耦封装过程和具体创建组件3....转载 2019-09-25 17:26:36 · 94 阅读 · 0 评论 -
工厂模式的安全模式
刚刚看了关于工厂模式的一部分。公开课听得没有太明白,记录一下。 function factor(type){ } factor.prototype={ basketball:function(){ }, tennis:function(){ ...原创 2019-09-25 17:04:27 · 389 阅读 · 0 评论 -
扩展运算符
扩展运算符可以用在函数参数,数组和对象上;函数参数:函数里面成为rest参数:function add(...values) { let sum = 0; for (var val of values) { sum += val; } return sum;}add(2, 5, 3) // 10这样就不需要用arguments参数了。...原创 2019-10-25 10:22:17 · 164 阅读 · 1 评论 -
解构默认值+参数默认值 的区别
function f6({ x = 10 } = {}, { y } = { y: 10 }) { console.log( x, y ); } f6(); // 10 10 f6( undefined, undefined ); // 10 10 f6( {}, undefined ); ...原创 2019-11-12 11:11:31 · 623 阅读 · 0 评论 -
遍历器Iterator
遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。Iterator的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for......转载 2019-10-23 14:53:31 · 256 阅读 · 0 评论 -
es6的解构赋值
es6允许从数组和对象中提取值,再对变量进行赋值,这被称为解构。数组赋值和对象赋值:let [a, b, c] = [1, 2, 3];let [ , , third] = ["foo", "bar", "baz"];third // "baz"let [head, ...tail] = [1, 2, 3, 4];head // 1tail // [2, 3, 4]le...原创 2019-10-21 10:35:28 · 127 阅读 · 0 评论 -
箭头函数深入理解
很早就接触这个了,但是今天发现可能我并没有想象中的那么理解它;如果只有一个参数,可以省略参数的括号:const fun = number => { return number * 2}如果只有一条执行语句,甚至可以省略后面的大括号,而且可以也不能写 returnconst fun = number => number * 2var Foo = (...原创 2019-11-12 14:03:10 · 223 阅读 · 0 评论 -
next()的理解
总结的简单流程是:(1)执行next后会从上往下依次返回每个yield表达式的值,(2)如果next有传参的话,会整个覆盖掉将要返回当前yield的上一个yield,(3)方法内的yield表达式和return都执行完了,就会直接返回undefined了。所以它的流程才会是:入参 分析结果1 1(无论是否传参,传什么参数,返回第一个表达式的值1)2 2(返回第二个...原创 2019-11-12 15:38:21 · 3892 阅读 · 0 评论 -
__proto__和prototype以及对象方法检索机制
关于这方面的文章也看了一些。。今天是做一个总结和记录。__proto__和prototypeprototype 函数属性__proto__ 任意对象的属性;(函数也是一个对象)指向自身构造函数的原型对象。对于下面这个例子,john.__proto__==Person.prototypePerson.prototype(这也是一个对象,它的原型是指的是Object)...原创 2019-09-26 09:34:00 · 189 阅读 · 0 评论 -
js 拆箱和装箱
js拆箱:装箱:把基本数据类型转化为对应的引用数据类型的操作(1).toString()=>new Number(1).toString()js拆箱:拆箱:将引用类型对象转换为对应的值类型对象对象类型=》基本类型[].valueOf()检测返回的类型是不是一个基本类型;[].toString()检测返回的类型是不是一个基本类型;||还不是就是error[]+[...原创 2019-10-14 09:13:25 · 120 阅读 · 0 评论 -
抽象相等==转换
x==y 先判断x,y类型是否相等。如果相等,则和===一样。如果不等。1:undefined和null 除了和自身以及相互比较为true以外,即:undefined==nullnull==nullnull==undefinedundefined==null其他全部不等;2:string、boolean和number值比较:先转换成Number,再比较;'...原创 2019-11-10 12:11:21 · 143 阅读 · 0 评论 -
js基础之array对象
array对象有很多方法:contact它可以摊平一层数组;如果它的参数是一个原始类型,那么它直接依次加到数组末尾。如果是参数是一个数组,数组里面的元素是原始类型,将数组里面的元素依次加到数组末尾。如果参数是一个数组,数组里面的元素是引用类型,直接将引用类型的元素加到数组末尾。join()它是将数组里面每一个元素转换成字符串,然后以某种方式连接起来,返回这个连接后的字符...原创 2020-01-24 12:47:35 · 196 阅读 · 0 评论 -
toString和valueOf
这个东西很头疼,今天也算是离开自己的舒适区,去探究一下他们俩到底有什么区别?toString把转换为字符串,对于布尔类型对象,字符串类型对象,就是原始值;valueOf正常情况下,优先调用toString()有运算操作符的情况下valueOf()的优先级高于toString()当调用valueOf()方法无法运算后还是会再调用toString()方法...原创 2020-01-24 15:35:43 · 140 阅读 · 0 评论 -
promise解决的问题以及它存在的问题和优化
promise解决了回调的问题。多层嵌套可能会导致阅读性太低,程序不好维护,以及可能会存在回调过早过晚,回调次数过多过少的问题等问题。因为即使是立即完成的Promise,也总会被异步调用,插在事件队列的末尾。Promise 创建对象调用resolve(..) 或 reject(..) 时,这个Promise 的 then(..) 注册的观察回调就会被自动调度。这些被调度的回调在下...原创 2019-11-12 10:11:12 · 1170 阅读 · 0 评论 -
性能测试和调优
这一趴我还觉得蛮有趣的。更新了我的知识库。性能测试和调优的目的不是为了满足 对微观性能调优的沉迷,比如某个 JavaScript 引擎上运行 ++a 是不是会比 a++ 快。本章更 重要的目标是弄清楚哪些种类的 JavaScript 性能更重要,哪些种类则无关紧要,以及如何 区分。常规的做法是:var start = (new Date()).getTime(); // 或者Date...原创 2019-11-11 19:41:05 · 499 阅读 · 0 评论 -
promise解决的问题以及promise运行机制
这个是一个很大的话题。我已经看了好几遍了。总觉得都没有完全理解,这次再总结一下。回调可能产生的问题:• 调用回调过早(在追踪之前);• 调用回调过晚(或没有调用);• 调用回调的次数太少或太多(就像你遇到过的问题!);• 没有把所需的环境 / 参数成功传给你的回调函数;• 吞掉可能出现的错误或异常;调用过早:调用过晚 :回调未调用这个问题主要就是担心代码...原创 2019-11-11 17:50:08 · 743 阅读 · 0 评论 -
你不知道的js之词法作用域
这本书也看了两遍了,觉得可以做一个总结。这本书讲词法作用域的概念,我是觉得我懂他的意思,但是真正总结还差了一口气。所以,又找了一些资料去归纳总结:Javascript中的函数在定义它们的作用域里运行,而不是在执行它们的作用域里运行。函数中的变量的值的查找需要到它定义的作用中去查找,但是this呢,需要去执行环境中去查找。var a=[];undefinedfor(l...原创 2019-10-24 14:34:32 · 74 阅读 · 0 评论 -
IEEE 754浮点数 详解
依然是基础:IEEE 754 64位浮点数存储格式解析s代表 符号位 1位;e代表指数位 11位;它的取值范围为0~2047。但是,我们知道,科学计数法中的E是可以出现负数的,所以IEEE 754规定,E的真实值必须再减去一个中间数,对于8位的E,这个中间数是127;对于11位的E,这个中间数是1023。f代表有效数值 52位,大于等于1,小于2,因为f总是1.XXX...原创 2019-10-22 14:13:48 · 6778 阅读 · 1 评论