当前位置: 首页 > Web前端 > vue.js

每个开发者都应该知道的33个JavaScript概念

时间:2023-03-31 20:28:37 vue.js

每个开发人员都应该知道的33个JavaScript概念本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。首先问大家一个问题,你对JS的熟练程度如何?今天给大家介绍一下JS中的33个概念。在这些概念中,你可能知道也可能不知道,甚至从未听说过。这些概念前端应该都知道,那我们就开始吧。1.调用栈调用栈是解释器(例如Web浏览器中的JavaScript解释器)用来跟踪其在调用多个函数的脚本中的位置的机制——当前运行的是什么函数,以及从哪个函数运行function调用了什么函数,等等。2.原始类型除了对象,所有类型都定义了不可变值(即不能改变的值)。例如(与C语言不同),字符串是不可变的。我们将这些类型的值称为“原始值”。3.值和引用类型分配了非原始值的变量被分配了对该值的引用。此引用指向对象在内存中的位置。该变量实际上并不包含该值。4.Implicit,Explicit,Nominal,StructuringandDuckTypingtypecoercion是指当一个运算符的操作数是不同类型时,其中一个操作数将被转换为另一个操作数类型的“等价”值。参考:https://stackoverflow.com/que...5.==vs===vstypeofJavaScript有两种视觉上相似但截然不同的方法来测试是否相等。您可以使用==或==测试是否相等。6.函数作用域、块作用域和词法作用域1:函数作用域2:块作用域3:符号作用域7.表达式和声明这个区别很重要,因为表达式可以像声明一样的动作,这就是为什么我们也有表达式语句。然而,另一方面,声明式不能像表达式一样工作。8.IIFE、模块和命名空间参考:https://vvkchandra.medium.com...9.消息队列和事件循环《JavaScript是如何实现异步和单线程的?》简短的回答是,JavaScript语言是单线程的,异步行为不是JavaScript语言本身的一部分,而是构建在浏览器(或编程环境)中的核心JavaScript语言之上,并通过浏览器的API访问.参考:https://medium.com/front-end-...10.setTimeout、setInterval和requestAnimationFrame我们希望Riemann不要执行某个函数,而是稍后执行。这称为“预定呼叫”。参考:https://javascript.info/setti...11.JavaScript引擎为Web编写代码有时感觉有点神奇,因为开发人员编写一系列字符,这些字符在浏览器中变成特定的图像、文本和动作。了解这项技术可以帮助开发人员更好地微调他们作为程序员的技能。参考:http://www.softwaremag.com/ja...12.按位运算符、类型化数组和数组缓冲区从技术上讲,对于计算机来说,一切都是1和0。它不使用数字、字符或字符串,它只使用二进制数字(位)。简单解释主要湍流,一切都以二进制形式存储。然后计算机使用UTF-8等编码将保存的位组合映射到字符、数字或不同的符号(ELI5版本)。参考:https://hackernoon.com/progra...13.DOM和布局树文档对象模型(DocumentObjectModel),通常简称为DOM,是使网站具有交互性的重要组成部分。它是一个允许编程语言操纵网站内容、结构和风格的界面。JavaScript是一种连接到Internet浏览器中的DOM的客户端脚本语言。参考:https://www.digitalocean.com/...14.工厂和类JavaScript是一种基于原型的语言,这意味着对象的属性和方法可以通过具有克隆和扩展能力的通用对象来共享。这称为原型继承,不同于类继承。参考:https://www.digitalocean.com/...15.this、call、apply和bind函数对每个JavaScript开发者来说都非常重要,几乎每个JavaScript库或框架都会用到。参考:https://levelup.gitconnected....16。new、Constructor、instanceof和Instances每个JavaScript对象都有一个原型。JavaScript中的所有对象都从它们的原型继承它们的方法和属性。参考:https://codeburst.io/javascri...17.PrototypalInheritanceandPrototypeChaining对于有Java或C++等基于类的语言经验的开发者来说,JavaScript有点令人困惑,因为它是动态的,确实如此本身不提供类实现(ES2015引入了关键字class,但它只是语法糖,JavaScript仍然是基于原型的)。参考:https://developer.mozilla.org...18、Object.create和Object.assignObject.create方法是JavaScript中创建新对象的方法之一。参考:https://medium.com/@happymish...19.map、reduce、filter即使你不知道什么是函数式编程,你也可能一直在使用map、filter和reduce,因为它们是如此有用并且可以让您编写更清晰的逻辑,从而使您的代码不那么糟糕。参考:https://medium.com/@bojangbus...20.纯函数、副作用、状态突变和事件传播我们的许多错误都源于与IO相关的、数据变异的、具有副作用的代码。这些问题在我们的代码库中随处可见——从接受用户输入,通过http调用接收意外响应,或者写入文件系统等等。这是一个残酷的现实,所以我们必须正确对待它并解决它.参考:https://hackernoon.com/javasc...21.闭包闭包是将函数与其周围状态(词法环境)的引用捆绑在一起的组合。换句话说,闭包允许我们从内部函数访问外部函数的范围。在JavaScript中,每次创建函数时都会创建闭包。参考:https://developer.mozilla.org...22.高阶函数JavaScript可以接受高阶函数。这种处理高阶函数的能力以及其他特性使JavaScript成为非常适合函数式编程的编程语言之一。参考:https://www.sitepoint.com/hig...23。递归参考:https://www.freecodecamp.org/...24。收集器和生成器生成器对象由生成器函数返回是的,它符合可迭代和迭代器协议。参考:https://developer.mozilla.org...25.PromisePromise对象表示一个异步操作的最终完成(或失败)及其结果值。参考:https://developer.mozilla.org...26.async/await参考:https://javascript.info/async...27.数据结构Javascript每天都在进化。随着React、Angular、Vue、NodeJS、Electron、ReactNative等框架和平台的快速发展,在大型应用中使用javascript变得相当普遍。参考:https://blog.cloudboost.io/pl...28.昂贵的操作和BigOnotation《什么是BigOnotation?》这是一个非常常见的开发人员工作面试问题。简而言之,它是给定输入量(通常是最坏情况)的算法运行时间的数学表达式。参考:https://medium.com/cesars-tec...29.算法在数学和计算机科学中,算法是定义明确的指令的有限序列,通常用于解决特定类别的问题或执行计算。30.继承、多态和代码重用类的继承是一个类扩展另一个类的方式,所以我们可以在现有的功能之上创建新的功能。参考:https://javascript.info/class...31.设计模式每个开发人员都努力编写可维护、可读和可重用的代码。随着应用程序变得越来越大,构建代码变得更加重要。设计模式被证明是解决这一挑战的关键——为给定情况下的常见问题提供组织结构。参考:https://www.digitalocean.com/...32.PartialApplication,Currying,Composition,andPipeline函数组合是一种组合多个简单函数以构建更复杂函数的机制。参考:https://www.codementor.io/@mi...33.ConciseCode编写干净、易懂、可维护的代码是每个开发人员必须掌握的技能。参考:https://www.freecodecamp.org/...如果你觉得这份榜单有用,别忘了收藏它,关注我获取更多类似内容。编辑过程中可能存在的BUG无法实时获知。之后为了解决这些bug,花费了大量的时间在日志调试上。顺便推荐一个好用的BUG监控工具Fundebug。https://dev.to/eludadev/33-ja...与梦想交流,干货,微信搜索【大千世界】关注这位凌晨还在洗碗的洗碗智慧。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。