11 2019 档案
摘要:js是单线程的,为什么可以执行异步操作呢? 这归结与浏览器(js的宿主环境)通过某种方式使得js具备了异步的属性。 区分进程和线程: 进程:正在运行中的应用程序。每个进程都自己独立的内存空间。例如:打开的浏览器就是一个进程。 线程:进程的子集,是独立的。线程在共享的内存空间中运行。 浏览器是多进程的
阅读全文
摘要:ES6的Map的键可以是任意的数据结构,并且不重复。 那么map的底层原理是啥呢? Map利用链表,hash的思想来实现。 首先,Map可以实现删除,而且删除的数据可以是中间的值。而链表的优势就是在中间的任意位置添加,删除元素都非常快,不需要移动其他元素,直接改变指针的指向就可以。。 而在存储数据很
阅读全文
摘要:Map是ES6提供给我们的构造函数,本质上是键值对的集合。他和对象类似 特点:key对应value,key和value唯一,任何值都可以当属性(包括对象)。但在Javascript的Object属性和值构成的是”字符串-值“对,属性只能是字符串,如果传个对象字面量作为属性名,那么会默认把对象转换成字
阅读全文
摘要:ES6引入了一个新的数据结构类型:Set。而Set与Array的结构是很类似的,且Set和Array可以相互进行转换。 特点:只有属性值,成员值唯一(不重复)。 回忆数组: 使用构造函数创建数组 var arr = new Array(); //创建一个空数组var arr1 = new Array
阅读全文
摘要:对象是无序属性的集合,而这些属性在创建是都带有一些特征值(可以理解为属性的属性,天生自带的),这些特征值是为了实现JavaScript引擎用的,因此JavaScript不能直接访问。 JavaScript通过这些特征值来定义属性的行为(属性是否删除,枚举,修改等)。 例如,在全局定义的属性是会挂载到
阅读全文
摘要:...展开&收集运算符,也就是说他可以干两件事情,展开和收集 一:收集,顾名思义把散列东西收集到一个地方,这个地方ES6规定收集在数组中 例如:下面函数fn将传递的参数收集在arg变量中,打印arg是一个数组,里面包含着传来的参数。就像吃豆子一样把值收到自己的嘴里。 function fn(...a
阅读全文
摘要:非箭头函数与箭头函数的写法 //非箭头函数写法,函数声明function sum(a, b) { return a + b; }//非箭头函数写法,函数表达式 var sum = function(a,b){ return a+b; }//箭头函数写法 把箭头函数赋给一个变量,省略function,
阅读全文
摘要:解构的作用:简化书写长度,提升开发效率。 解构对象 在开发中我们常用到使用ajax请求数据,并且把数据渲染到页面上。可能这个数据返回的对象或数组。例如返回一个obj{name:'zwq',age:18,sex:woman}而我们获取里面的值保存在变量里会用 var name = obj.name,v
阅读全文