ES6
ArthurHsing
前端菜鸟
展开
-
javascript es6深度冻结
const my = { a: { a1: [1, 2, 3], a2: () => { console.log('hahahaha'); } }, b: 'xc', c: [9, 8, 7, { c1: 'arthur', c2: 1234 }], [Symbol.for('xc')]: { name: 'hahaha' } } const deepFreeze = (obj) => { if (typeof obj ==原创 2020-11-03 14:56:01 · 399 阅读 · 0 评论 -
javascript执行上下文、作用域、闭包总结
1.执行上下文和变量对象 1)变量或函数的执行上下文决定了它们能够访问哪些数据,以及它们的行为。 2)每个执行上下文都有一个与之关联的变量对象(variable object),这个上下文中定义的所有变量和函数都存在于这个对象上,这个对象我们无法访问。 3)如果执行上下文是函数,那么它的活动对象(activation object)将作为变量对象,活动对象最初只有一个定义变量:arguments 2.上下文栈 1)上下文在其所有代码都执行完毕后会被销毁,包括定义在它上面的所有变量和函数。全局上下文只有在页面原创 2020-10-13 20:51:55 · 216 阅读 · 0 评论 -
javascript变量知识点
1.javascript的变量的类型分为两种:原始值和引用值。 2.到目前一共有7种原始值:Undefined、Null、Number、String、Boolean、Symbol、BigInt。 3.保存原始值的变量是按值进行访问的,保存引用值的变量是按引用(内存地址)进行访问的。 4.用new Object()和字面量对象{}创造出来的对象的效果是一模一样的,所以我们一般用{}创建一个对象。 5.原始值不能有属性,如果尝试给原始值添加属性,不会报错,但是不会生效。 6.原始类型的初始化只能用原始字面量的方原创 2020-10-13 16:57:53 · 236 阅读 · 0 评论 -
javascript变量类型的确定
1.typeof操作符来确认类型 1)typeof操作符一共会产生undefined、string、number、boolean、object、function、symbol、bigint8种结果,不严谨地说,跟8(7 + 1)种数据类型的数量是一样的,但是数据类型是没有Function这种类型的,typeof也没有null这种结果。 2)typeof一个function(他是引用类型)的结果是function,typeof null的结果是object,见如下代码: function fn() { } c原创 2020-10-13 16:50:28 · 316 阅读 · 0 评论 -
javascript数组解构赋值交换变量的性能问题
原链接 是墙外的链接,可能比较慢。 总的意思就是解构赋值是遍历了数组的遍历器来获取的值,所以性能没有正常操作(索引操作)交换值来得快。原创 2020-10-12 15:59:46 · 1010 阅读 · 0 评论 -
es6中WeakMap的应用场景
stackoverflow原创 2020-09-23 10:08:08 · 357 阅读 · 0 评论 -
ES6箭头函数
ES6箭头函数 一、语法 1. 基本语法 (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // 相当于: => { return expression; } // 当只有一个参数的时候圆括号也可以不加: (singleParam) => { ...原创 2019-12-17 19:00:22 · 273 阅读 · 0 评论 -
函数解构赋值与作用域的复杂例子
函数结构赋值与作用域的复杂例子 var foo = 'bar'; function foo(x, y = function() { x = 2; }) { var x = 3; y(); console.log(x); } foo(); //3 console.log(x); // 1 上面代码中,函数foo的参数形成一个单独作用域。这个作用域里面,首先声明了变量x,然后声明了变量y,y的...转载 2019-12-14 18:46:25 · 111 阅读 · 0 评论 -
ES6 标签模板(Tagged templates)
ES6标签模板(Tagged templates) 一、简介 标签模板允许你用一个方法去解析模板字符串。该方法形参的第一个参数是一个字符串数组,后面的几个参数是你传入的用${}表示的其他变量。该方法可以返回经过你处理过的字符串或者另外一个方法。 这个解析模板字符串的方法的名字是自定义的。 二、代码 1.以下是标签模板的基本使用 var person = 'Mike'; var age = 28; ...原创 2019-12-13 16:49:44 · 940 阅读 · 0 评论