js 常用
来源:互联网 发布:兄弟连it教育招聘 编辑:程序博客网 时间:2024/06/04 18:19
1、Macrotask和 Microtask
Macrotask 和 Microtask都是属于异步任务中的一种
· Macrotasks : setTimeout, setInterval, setImmediate, I/O, UI rendering
· Microtask : process.nextTick, Promises, Object.observe, MutationObserver
Mutation Observer(变动观察器)是监视DOM变动的接口。当DOM对象树发生任何变动时,Mutation Observer会得到通知。
在每一次事件循环中,macrotask 只会提取一个执行,而 microtask 会一直提取,直到microtasks 队列清空。而事件循环每次只会入栈一个macrotask ,主线程执行完该任务后又会先检查microtasks 队列并完成里面的所有任务后再执行macrotask
用处
可以看出 Macrotask 的优先级低于 Microtask ,那么UI rendering 之前我们可以做很多数据上的处理,比如Vue 使用MutationObserver 可以处理完所有数据处理后再统一做UI render
参考:
https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
2、取消事件的默认动作。
语法
event.preventDefault();
例如,如果 type 属性是"submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果Event 对象的cancelable 属性是fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用
(事件冒泡顺序:由内至外,由子元素至父元素)
1.event.stopPropagation();
事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转)
2.return false;
事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转)
还有一种有冒泡有关的:
3.event.preventDefault();
如果把它放在头部A标签的click事件中,点击“点击我”。
会发现它依次弹出:我是最里层---->我是中间层---->我是最外层,但最后却没有跳转到百度
它的作用是:事件处理过程中,不阻击事件冒泡,但阻击默认行为(它只执行所有弹框,却没有执行超链接跳转)
3、this指向;
4.回调函数
5、localstiorage大小,5M
Cookie大小
URL IE的话,最大的长度为2083字符,若是中文字符的话只有2083/9=231个
6、设计模式
7、|是前后两数转成二进制后相加的结果;||,如果为false则执行右边的语句
8、模块化的写法:
http://www.ruanyifeng.com/blog/2012/10/javascript_module.html
原始做法:"污染"全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。
9.立即执行函数: (function ( ){...})( )与 (function ( ){...}( ))有什么区别?
function foo() {...} // 这是定义,Declaration;定义只是让解释器知道其存在,但是不会运行。
foo(); // 这是语句,Statement;解释器遇到语句是会运行它的。
传统方法:
1. 传统的方法啰嗦,定义和执行分开写;
2. 传统的方法直接污染全局命名空间(浏览器里的 global 对象,如 window)
用经典的立即执行函数写法把所有代码包起来( 主要作用应该是避免污染全局变量,不暴露私有成员 ),一般jquery的插件都可以看到
10、JavaScript 内存泄漏:
http://www.ruanyifeng.com/blog/2017/04/memory-leak.html
11、avascript 严格模式
http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
12、arguments caller
13、String indexof array findIndex
14、传值太大会影响性能?
15、Js JSON.parse 严格要求json格式;key必须是双引号
如:JSON.parse(‘{ key: 1}’)报错
JSON.parse(‘{ “key”: 1}’)正确
- 常用js
- 常用js
- 常用JS
- 常用js
- js 常用
- JS常用
- js常用
- 常用js
- 常用js
- 常用JS
- 常用 js
- 常用JS
- js常用...
- 常用JS
- js常用
- 常用js
- js常用
- 常用js
- 【菜鸟学框架】——Struts2全局把控
- 什么样的程序猿,最容易被鄙视?
- IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置:
- openssl 单向认证
- 2----编程实现大小写字母的转换
- js 常用
- struts2.3升级struts2.5
- java---interrupt、interrupted和isInterrupted的区别
- python基础3之函数高级特性
- java之单例设计模式
- STL空间配置器读书笔记
- centos6.5下搭建openvpn服务,访问内网服务器
- 电商分类:UITableView和UICollectionView的联动
- Android软键盘的一些注意事项