Set的兼容性处理
- babel只是转换语法但是不转换api
实现拖拽
- 利用mousedown(moveStart) mousemove(moving) mouseup(moved)利用标志位判断是否可以拖动
- jsdomlist转数组
|
css3圆形头像
- 相等时,直接用border-radius 50%
- 不相等时外层用div border-radius 50%,然后图片border-radius 50% 并且 100%填充
js垃圾回收机制
- 标记清除模式,分进入环境标记和离开环境标记,然后给在当前执行环境和有引用的去掉标记,剩下带标记的就是要清除的元素
- 计数清除模式,声明对象引用的时候+1,减少引用的时候-1,当引用数为0是,回收对象,但是有一个问题就是循环引用,ie9之前就是用的计数清除模式,比如当时的BOM和COM对象还不是js对象,所以使用dom对象和js对象就可能造成循环引用,解决方式是设置为null解除引用
[] 和 new Array的区别
- 唯一的区别是[]不会调用构造函数,而new会
- 建议使用字面量的形式,可读性好,看起来像可封装的
js 堆与栈的区别
- 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其
操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
js 500 501 502 503 504状态码
- 500表示服务器内部错误
- 501指服务器不具备请求的功能
- 502表示网关地址错误
- 503表示服务不可用,一般表示维护
- 504表示网关请求超时
- 505表示http的版本是不受支持的
session和cookie的区别
- cookie和session都是会话技术,cookie运行在客户端,session运行在服务端
- cookie有大小限制,一般是4k,而session一般没有大小限制
- cookie有安全隐患,通过拦截本地文件可以找到cookie进行攻击
- session会在服务器上保留一段时间才消失,session过多会增加服务器压力
千位分隔符
- charAt和[]下标访问方法的区别,一个是如果超出范围的话,[]返回undefined,而charAt会返回空字符串,而且IE6-8不支持下标访问,charAt则没有此问题
|
函数柯里化
- 参数复用、延迟计算、提前返回
模块化解决的问题
- 命名空间的冲突问题
- 文件依赖的问题
- es6的模块化输出一个值的引用,也就是说加载的时候不会执行,而是一个引用,当执行到的时候才会去里面取值,所以值是会随着执行的变化而变化的(有点类似CMD),但是commonjs是输出一个值的拷贝,就是说执行的时候就算改变了也只会输出原值,使用函数才可以取到内部变动的值