Markdown在线编辑器 - www.MdEditor.com

1 首先关于数据类型,有基本数据类型,和引用数据类型

基本数据类型有:number,string,boolean等;引用数据类型一般指object
栈:大小固定;堆:大小不固定;栈中存放一些基本的数据类型,和引用数据类型的地址;堆中存放引用数据类型的实际值。

造成问题,当两个变量指向同一个地址时,引起数据的同步修改

  1. <script>
  2. window.onload =function(){
  3. var arr1 =[1,2,3,4,5];
  4. //浅拷贝
  5. var arr2 = arr1;
  6. arr2[2]=100;
  7. console.log(arr1);//[ 1, 2, 100, 4, 5 ]
  8. console.log(arr2);//[ 1, 2, 100, 4, 5 ]
  9. //深拷贝
  10. var arr3 =[];
  11. for(let i in arr1){
  12. arr3[i]= arr1[i];
  13. }
  14. arr3[2]=555;
  15. console.log(arr1);//[ 1, 2, 100, 4, 5 ]
  16. console.log(arr3);//[ 1, 2, 555, 4, 5 ]
  17. }
  18. </script>

2 js是单线程的语言,只有一个执行的进程,在解析执行js文件的时候,对一些造成异步的函数,会将该处理事件放入宏任务待执行队列,和微任务待执行队列

宏任务与微任务的执行顺序是,执行一个宏任务后,执行所有的微任务,在接着执行宏任务
宏任务:setTimeout,setInterval等;微任务:Promise.then catch finally;process.nextTick;等
  1. <script>
  2. window.onload =function(){
  3. setTimeout(()=>{
  4. console.log('1级宏事件1');
  5. newPromise((resolve)=>{ resolve()})
  6. .then(()=>{
  7. console.log('2级微事件3');
  8. })
  9. });
  10. console.log('主事件1');
  11. newPromise((resolve)=>{
  12. console.log('主事件2');
  13. resolve()
  14. }).then(()=>{
  15. console.log('1级微事件1');
  16. setTimeout(()=>{console.log('2级内宏事件2')});
  17. }).then(()=>{
  18. console.log('1级微事件2')
  19. })
  20. }
  21. </script>

输出:
主事件1
主事件2
1级微事件1
1级微事件2
1级宏事件1
2级微事件3
2级内宏事件2


最新文章

  1. MySQL + Atlas --- 部署读写分离
  2. js压缩
  3. Java EE开发平台随手记3——Mybatis扩展2
  4. 工作中碰到的js问题(disabled表单元素不能提交到服务器)
  5. USACO GCD Extreme(II)
  6. sublime text 3 如何安装 package control
  7. 微软职位内部推荐-Sr. SW Engineer for Azure Networking
  8. linux常用编辑器
  9. 创建FBI树
  10. 传统 Ajax 已死,Fetch 永生
  11. 简单选择排序 Selection Sort 和树形选择排序 Tree Selection Sort
  12. FileAttributeView出现空指针异常原因分析
  13. docker学习实践之路[第一站]环境安装
  14. 利用requestAnimationFrame和Tween算法实现兼容所有浏览器的运动动画,直接秒杀Css3动画
  15. Form_通过FND_FNDFLUPL标准功能上传CSV控件(案例)
  16. sencha touch 入门系列 (九) sencha touch 布局layout
  17. CAD四种坐标
  18. 【题解】洛谷P1966 [NOIP2013TG] 火柴排队(树状数组+逆序对)
  19. mpvue自定义化后台富文本样式
  20. javascript 准确的判断类型方法

热门文章

  1. sublime text2解决中文乱码,支持中文的设置方法
  2. .NET Core 3.0中IAsyncEnumerable&lt;T&gt;有什么大不了的?
  3. MyEclipse注册代码
  4. 树莓派3B/3B+ 清华镜像系统和安装中文输入法Fcitx及Google拼音输入法
  5. Python_箱型图绘制与特征值获取
  6. 动画讲解TCP
  7. JavaScript-改变this指向
  8. selenium-显式等待与隐式等待(3)
  9. Open vSwitch系列之一 Open vSwitch诞生
  10. SSO原理解析