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