![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS学习笔记
文章平均质量分 80
在下小航(Harvey)
这个作者很懒,什么都没留下…
展开
-
深入理解js原型、原型链
1.理解对象 从typeof运算符开始 function show(x) { console.log(typeof x); // undefined console.log(typeof 10); // number console.log(typeof 'abc'); // string console.log(typeof true); // boolean console.log(typeof function () {}); //function cons原创 2021-08-12 19:06:40 · 159 阅读 · 0 评论 -
深入理解js闭包
闭包的定义 简单讲:闭包就是指有权访问另一个函数作用域中的变量的函数。 MDN这样定义:闭包是一种特殊的对象。它由两部分构成:函数,以及创建该函数的环境。环境由闭包创建时在作用域中的任何局部变量组成。 执行上下文和作用域 作用域就是一套规则,用于确定在何处以及如何查找变量(标识符)的规则 三种作用域类型: 全局作用域:全局作用域为程序的最外层作用域,一直存在。 函数作用域:函数作用域只有函数被定义时才会创建,包含在父级函数作用域 / 全局作用域内。 块级作用域:块级作用域由最近的一对包原创 2021-08-12 11:30:39 · 168 阅读 · 0 评论 -
JavaScript尾调用优化-js学习笔记
读JavaScript红宝书时看到了这个,感觉需要单独拿出来记笔记。 1. 什么是尾调用优化? 尾调用优化是ES6规范新增的一项内存管理优化机制,让 JavaScript 引擎在满足条件时可以重用栈帧。 function outerFunction() { return innerFunction(); // 尾调用 } ES6优化之前,执行这个代码会在内存中发生如下操作: (1) 执行到 outerFunction 函数体,第一个栈帧被推到栈上。 (2) 执行 outerFunction 函数体,原创 2021-01-31 19:01:58 · 341 阅读 · 0 评论 -
对javascript中浅拷贝和深拷贝以及赋值的理解
JS浅拷贝的概念MDN官方并没有给出明确定义,网上很多文章也容易误导人,浅拷贝不单单是指向同一个对象。 另外一个博主总结的拷贝Tz一号 先从赋值说起: 1.赋值 赋值是将某一数值或对象赋给某个变量的过程,分为: 1.1、基本数据类型:赋值,赋值之后两个变量互不影响 let a=1; let b=1; console.log(a);//1 console.log(b);//1 //基本数据类型不会相互影响 1.2、引用数据类型:赋址原创 2021-01-30 20:54:05 · 98 阅读 · 0 评论