
javascript核心原理
文章平均质量分 92
1oneLee
这个作者很懒,什么都没留下…
展开
-
第十讲:实现 js 的各种排序算法
我们上一讲学习了数组扁平化的相关知识,那么这一讲的内容和之前相比,较为独立,要说的是数组排序那些事儿。数组排序是你在 JavaScript 的编程过程中经常会遇到的,也是大厂面试中会考察的,尤其是调用 sort 方法,不过今天我们主要围绕数据结构排队进行讲解,关于 sort 方法的详细剖析我会在下一讲和你探讨。那么,为了方便你更好地理解本讲的内容,在课程开始前请你先思考几个问题。数据结构中稳定的排序算法有哪些?不稳定的排序算法有哪些?时间复杂度和空间复杂度分别代表了什么?带着这样的思考,我们开始今天原创 2021-09-17 16:20:04 · 220 阅读 · 0 评论 -
第九讲:数组扁平化
我在前两讲给你介绍了类数组的相关知识,那么这一讲会结合之前的内容,来聊聊数组相关的应用——如何实现数组扁平化。数组扁平化在一些多维数组的应用场景中会出现,我将围绕 6 种方式来带你实现它。此外,关于数组除了扁平化也有其他问题,比如数组去重等,也是面试中经常会问到的。本讲的目的是将扁平化作为一个切入点,这种思路对于你解决其他类似的问题也是一个很好的启发。按照惯例,在课程开始前请你先思考几个问题:怎样用最普通的方法解决数组扁平化问题?ES6 里面是否有一些高级的方法能够直接实现?下面开始说说什么是数组原创 2021-09-15 20:46:24 · 369 阅读 · 1 评论 -
第八讲:类数组
我在上一讲带你梳理了数组那令人眼花缭乱的各种方法,其实 JS 中一直存在一种类数组的对象,它们不能直接调用数组的方法,但是又和数组比较类似,在某些特定的编程场景中会出现,这会让很多 JS 的初学者比较困惑。那么通过本讲的学习,希望你能更好地去理解类数组原理,以及类数组的转换。我们先来看看在 JavaScript 中有哪些情况下的对象是类数组呢?主要有以下几种:函数里面的参数对象 arguments;用 getElementsByTagName/ClassName/Name 获得的 HTMLCollec原创 2021-09-17 16:15:23 · 4877 阅读 · 0 评论 -
第七讲:数组 api
Array.from : 只要一个对象对迭代器, 就可以通过 Array.from 变成数组欢迎来到第二个模块“深入数组篇”的学习。JavaScript 数组的 API 经常会被 JS 开发者频繁使用,在整个 JavaScript 的学习过程中尤为重要。数组作为一个最基础的一维数据结构,在各种编程语言中都充当着至关重要的角色,你很难想象没有数组的编程语言会是什么模样。特别是 JavaScript,它天生的灵活性,又进一步发...原创 2021-09-15 20:57:52 · 273 阅读 · 0 评论 -
第六讲:JSON.stringify 方法
我在上一讲为你剖析了闭包这个难点,带你了解了作用域、闭包产生的原因及表现形式。那么这一讲,我们一起来手工实现一个JSON.stringify 的方法。这个方法能够站在全局考察你对 JS 各种数据类型理解的深度,对各种极端的边界情况处理能力,以及 JS 的编码能力。之所以将这篇作为这一模块的进阶,是因为我想把整个数据类型的知识点串起来,让你理解得更加融会贯通,能够更上一层楼。在大厂的前端面试过程中,这个题目也经常会被问到。大部分候选人只知道这个方法的作用,而如果让他自...原创 2021-09-15 20:52:18 · 2082 阅读 · 0 评论 -
第五讲:闭包与作用区域
我们上一讲介绍了 call、apply、bind 等方法的实现,而在这一讲中我将会带你一起剖析闭包这个难点。JavaScript 中的闭包是相当重要的概念,并且与作用域相关知识的指向密切相关,在大厂的前端面试过程中经常会被提及。因此希望通过这一讲的学习,你能够彻底掌握它。按照惯例,在课程开始前请你先思考几个问题。JavaScript 中的作用域是什么意思?闭包会在哪些场景中使用?通过定时器循环输出自增的数字通过 JS 的代码如何实现?在讲闭...原创 2021-09-15 10:00:35 · 343 阅读 · 0 评论 -
第四讲:new apply call
我在上一讲介绍了继承的概念,同时你也可以看到,其中综合使用了 new、apply 以及 call 的方法,那么这一讲我们就围绕这几个方法进行更深入的讲解,以便于你清楚这几个核心方法的实现思路,更好地去理解继承的原理。JavaScript 中的 apply、call 和 bind 方法是前端代码开发中相当重要的概念,并且与 this 的指向密切相关。很多人对它们的理解还比较浅显,如果你想拥有扎实的 JavaScript 编程基础,那么必须要了解这些基础常...原创 2021-09-15 10:00:51 · 157 阅读 · 0 评论 -
第三讲:js继承的6种方式
构造函数继承(借助 call):不能继承父类原型上的属性和方法只能继承父类实例上的属性和方法但可以看到 parent3 执行了两次,第一次是改变child3 的原型是时候,第二次是通过 call 调用 parent 3 的时候。parent3 多构造一次就多进行了一次性能开销,这是我们不希望看到的。可以看到多个继承的对象存在共享一个引用(person4.friends 和 person5.friends)的情况,存在可能篡改的问题,因此还是有一些问题的。...原创 2021-09-14 22:10:50 · 632 阅读 · 0 评论 -
第二讲:深浅拷贝
02 | 代码基本功测试(下):如何实现一个深浅拷贝?上一讲我们介绍了 JS 的两种数据类型,分别是基础数据类型和引用数据类型,你可以回忆一下我提到的重点内容。那么这一讲要聊的浅拷贝和深拷贝,其实就是围绕着这两种数据类型展开的。我把深浅拷贝单独作为一讲来专门讲解,是因为在 JavaScript 的编程中经常需要对数据进行复制,什么时候用深拷贝、什么时候用浅拷贝,是开发过程中需要思考的;同时深浅拷贝也是前端面试中比较高频的题目。但是我在面试候原创 2021-09-14 22:04:32 · 1279 阅读 · 0 评论 -
第一讲:javascript 核心
返回类型:在第一讲我要为你介绍的是 JS 数据类型的相关知识。作为 JavaScript 的入门级知识点,JS 数据类型在整个 JavaScript 的学习过程中其实尤为重要。因为在 JavaScript 编程中,我们经常会遇到边界数据类型条件判断问题,很多代码只有在某种特定的数据类型下,才能可靠地执行。尤其在大厂面试中,经常需要你现场手写代码,因此你很有必要提前考虑好数据类型的边界判断问题,并在你的 JavaScript 逻辑编写前进行前置判断...原创 2021-09-14 21:52:46 · 176 阅读 · 0 评论