随笔分类 - JS相关
something about js
摘要:0.1 + 0.2 !== 0.3 原因:js的数据类型为Number,采用的是双精度(64位)。而数据计算,是转换成2进制进行,转换后的长度如果超过指定的长度,则会丢弃超出的部分,从而导致精度丢失。待计算完成后,又转化为原来的长度,所以大小会有变化。 常见解决浮点数精度问题的方法: 1.toFix
阅读全文
摘要:栈:LIFO(last-in-first-out)后进先出 队列:FIFO(first-in-first-out)先进先出 数组方法 arr.pop() 返回最后一项的值 arr.push() 在数组最糊一项追加,返回当前数组长度 arr.shift() 返回第一项的值 arr.unshift()
阅读全文
摘要:ES6模块与CommonJs模块的区别 1.前者为异步加载,后者为同步加载; 2.前者为引用,后者为拷贝缓存。当模块对应值发生改变时,前者加载处可跟随改变,后者未做特出处理的情况,不会改变; 3.前者为编译时加载,后者为运行时加载。
阅读全文
摘要:1.单线程(浏览器脚本语言,用户交互、操作dom,如果为多线程,假设操作同一个节点,一个是增加、一个是删除,浏览器不知道该执行哪个,所以为了避免类似的问题,设计成为单线程) 2.h5允许创建多线程,但子线程受主线程控制,且不可操作DOM。 3.任务队列(同步任务、异步任务): 同步任务:在主线程内的
阅读全文
摘要:s为非空英文字符串,要将通类型的压缩为字符串s2,且s1长度不得超过100 如:s为 aaabcccc,s2应为a3bc4 function f(s) { if (!s || (s.length > 100)) { return ; } else { const tempArr = []; let
阅读全文
摘要:js基本数据类型: 1.Number( Int, Float, NaN, Infinity) 2.String (单引号、双引号包裹的) 3.Boolean(true, false) 4.Object(无序名值对)【引用类型】 5.Null(值为null,表示为空) 6.Undefined(值为un
阅读全文
摘要:对象构建方法:Object构造函数和对象字面量 //Object构造函数创建 const obj = new Object(); obj.name = 'Anna'; obj.age = 24; // 对象字面量创建 const obj = { name: 'Anna', age: 24 } 对象属
阅读全文
摘要:函数节流 在规定时间内只允许触发一次。 应用场景:防暴击或者没必要的频繁调用(一般多用在某些鼠标事情) 应用目的:节约计算资源 方法:可根据时间戳或定时器实现 // 时间戳方案 function throttle(fn, wait) { var pre = Date.now(); return fu
阅读全文
摘要:最近想实操nodejs,在选择框架的时候,查阅后大致整理为如下表格内容。 此处列举下才开始使用eggjs框架: 1.其基于koa开发; 2.若为企业级项目,用其脚手架egg-inint搭建会快很多,后可根据业务需要对其进行扩展 浅尝后,觉得有以下好处:1.内置了单元测试,对项目壮大后进行修改很友好;
阅读全文
摘要:Math.floor只能对一个数向下取整,不能解析字符串 如: Math.floor(1.5) // 1 Math.floor(-2.1) // -3 Math.floor("3") // 3 Math.floor('Hello') // NaN Math.floor('16岁') // NaN p
阅读全文
摘要:1.js引擎、编译器、作用域。 引擎:负责JS全过程的编译和执行; 编译器:负责语法分析和代码生成; 作用域:负责收集并维护声明组成的查询,以及当前执行代码对这些变量的访问权限(简言之,作用域就是用于编译和执行的一套规则)。 三者的关系:编辑器要编译的时候会询问作用域,引擎要执行代码的时候也会询问作
阅读全文
摘要:箭头函数:省去了关键字function和return: eg: reduce=(a,b)=>a+b;//返回a+b的值 redduce=(a,b)=>{console.log(a);console.log(b);return (a+b);}//对于有块级作用域的,如要返回值,需用return返回 注
阅读全文

浙公网安备 33010602011771号