- 博客(10)
- 收藏
- 关注
原创 ES6的Map数据结构
ES6的Map数据结构含义和基本用法JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。。如果键名不是字符串的话,将会被自动转为字符串,这对我们的使用会造成一定的限制。所以ES6中提供了Map数据结构,其提供了“值—值”的对应,是一种更完善的Hash结构实现,如果我们需要“键值对”的数据结构,Map比Object更合适。Map本...
2019-07-28 17:04:22 165
原创 ES6中的Set数据结构
ES6中的Set数据结构Set在ES6 中提供了新的数据结构Set, 该数据结构类似数组,但是成员的值都是唯一的,没有重复的值。如果遇到重复的成员,Set结构不会添加重复的值。Set本身就是一个构造函数,用来生成Set数据结构。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of...
2019-07-25 17:19:35 193
原创 ES6数据类型Symbol
ES6数据类型Symbol概述在ES5 中,对象的属性名都是字符串,这就可能导致属性名的冲突。为了保证每个属性名字都是独一无二的,在ES6中引入了Symbol,它表示独一无二的值。Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与...
2019-07-24 20:54:19 103
原创 ES6中的变量的解构赋值2
ES6中的变量的解构赋值2函数参数的解构赋值函数的参数也可以使用解构赋值。function add([x, y]){return x + y;}add([1, 2]); // 3同时函数参数的解构也可以使用默认值但是注意写的位置一定要写正确,下面第一种写法是为变量为指定默认值,而第二种写法是为函数的参数指定默认值,这两种写法得到的结果不相同!function move1({x ...
2019-07-18 16:20:29 97
原创 ES6中的变量的解构赋值1
ES6中的变量的解构赋值1ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这种方式被称为解构赋值。数组的解构赋值类似于:等号两边的模式相同,左边的变量就会被赋予右边对应的值。给几个例子:let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3可以看出左右两边的模式完全对应时,左边的变量能够被正确...
2019-07-16 21:56:17 86
原创 JS中的深浅拷贝
JS中的深浅拷贝首先要明确JS中的数据类型,大的种类可分为基本数据类型和对象类型。这两种数据类型在内存中的存储是不同的。其中基本数据类型保存在栈内存,而对象类型保存在堆内存中,但是对象类型的地址是写在栈内存中的。其原因在于保存在栈内存中必须是大小固定的数据,而引用类型的大小是不固定的。两种数据类型在复制时:对于基本类型的复制是在栈区中重新开辟新的内存来存放新的变量,新旧变量互不影响。而对于...
2019-07-09 22:15:41 115
原创 JavaScript中的闭包
JavaScript中的闭包闭包就是指有权访问另一个函数作用域中的变量的函数。而创建闭包的常见方式,就是在一个函数内部创建另一个函数。有了闭包之后,原本在外部函数调用结束之后应该销毁的变量对象并未被销毁,而可以在闭包中继续使用,这是闭包最重要的特性。闭包由两部分组成,即为函数和创建该函数的环境。例如创建一个闭包:function func(){ var a=1; return f...
2019-07-09 15:28:22 104
原创 JS中的类型转换
类型转换在 JS 中类型转换只有三种情况,分别是:转换为布尔值转换为数字转换为字符串转Boolean在条件判断时,除了 undefined, null, false, NaN, '', 0, -0,其他所有值都转为 true,包括所有对象。对象转原始类型对象在转换类型的时候,会调用内置的 [[ToPrimitive]] 函数,对于该函数来说,算法逻辑一般来说如下:...
2019-07-08 22:29:44 99
原创 JavaScript中的this
JS中如何正确判断this的指向在全局中定义的函数,对于全局中的直接调用,其this指向始终是window对象。例如定义函数时:function foo(){ console.log(this.a)}调用时:var a=1;foo(); //1在这种情况下,调用函数时,a的值就是全局变量中的a如果是在对象中定义了函数,则利用对象调用函数,this的指向是调用函数的...
2019-07-08 16:36:09 53
原创 JS的数据类型
原始(Primitive)类型在 JS 中,存在着 6 种原始值,分别是:booleannullundefinednumberstringsymbol首先原始类型存储的都是值,是没有函数可以调用的。但注意有的基本类型会在调用函数时被强制转换!例如:‘1’.toString()。原始类型中存在的一些坑:JS 的 number 类型是浮点类型的,在使用中会遇到某些 Bug,...
2019-07-07 23:11:17 90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人