当前位置: 首页 > Web前端 > JavaScript

SegmentFault思维技术周刊Vol.46--关于JavaScript的那些事

时间:2023-03-26 22:33:16 JavaScript

JavaScript是一门基于原型和一等函数的语言。它是一种多范式语言,支持面向对象编程、指令式编程和函数。编程。它提供了操作文本、数组、日期和正则表达式等的语法。它不支持I/O,例如网络、存储和图形,但这些可以通过其宿主环境来支持。进阶知识《JS阻塞渲染,这么多年我理解错啦?》在中文社区,流传了这么多年的说法是:JS线程负责执行JS,GUI渲染线程负责渲染。两者是互斥的,所以JS执行会阻塞渲染。但是随着DevTools的使用越来越多,我渐渐开始怀疑上面的说法。本文将通过实际案例来解释为什么JS会阻塞渲染。《JavaScript 之原型、原型链》在Java等其他编程语言中使用new命令时,会调用“类”的构造函数。但是,JavaScript没有“类”,本身不提供类的实现(虽然ES6中提供了class关键字,但它只是语法糖,JavaScript仍然是基于原型的)。因此,JavaScript做了一个简化的想法。new命令后跟的不是一个类,而是一个构造函数。构造函数用于生成实例对象,但它的缺点是不能共享属性和方法。因此,为构造函数设置了一个原型属性,其中包含一个对象(prototypeobject)。所有实例对象需要共享的属性和方法放在这个对象中,那些不需要共享的属性和方法放在构造函数中。《JavaScript Promise 的理解和使用》什么是承诺?如何使用承诺?《5个一定要学会的JavaScript新特性》JavaScript在不断升级迭代,越来越多的新特性让我们的代码编写更加简洁有趣。本文将介绍5个新特性,一起来学习吧。《你可能不了解的 Promise 微任务类型》ECMA规范将Promise微任务分为两种类型:NewPromiseReactionJob和NewPromiseResolveThenableJob。下面结合规范看一下这两类微任务的生成时机和执行内容。《JavaScript闭包》JavaScript中的闭包描述了函数外部作用域中的变量被内部作用域引用的场景。闭包的结构为内部作用域保存了外部作用域中的变量。本文将带你用正确的姿势看JavaScript闭包。《JavaScript内存泄漏》传统web开发中的内存管理不需要考虑太多,通常不会有什么严重的后果。因为当用户点击链接打开新页面或刷新页面时,页面中的信息将从内存中清除。随着SPA(SinglePageApplication)应用的增多,我们在编码的时候需要更加注意内存。因为如果应用程序使用的内存逐渐增加,会直接影响网页的性能,甚至会导致浏览器选项卡崩溃。在本文中,我们将研究JavaScript编码导致内存泄漏的场景,并提供一些内存管理建议。《JS中的块作用域和遮蔽效应》JS中的代码块是什么?什么是块作用域?什么是阴影效应?什么是非法蒙面?块级作用域和词法作用域的应用实践《js 生成UUID的几种方法》UUID(UniversallyUniqueIDentifier)全局唯一标识符。UUID是一种算法生成的数字标识符,二进制长度为128位。UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中x为0-9或a-f范围内的32位十六进制数。理想情况下,没有计算机或计算机集群会生成两个相同的UUID。《js数组去重常见的七种方法》filter()方法创建一个新数组,通过检查指定数组中满足条件的所有元素来检查其元素。item是当前元素的值,index是当前元素的索引值。indexOf()方法返回指定字符串值在字符串中第一次出现的位置。使用indexOf()查询数组的下标是否等于当前下标。如果相等则返回,否则不返回值。《JavaScript深拷贝的几种方法》浅拷贝就是创建一个新的对象,这个对象拥有原对象的属性值的副本。如果属性是基本类型,则复制基本类型的值,如果属性是引用类型,则复制内存地址。如果不进行深拷贝,如果其中一个对象改变了该对象的值,就会影响另一个对象的值。深拷贝就是从内存中对一个对象进行完整的拷贝,从堆内存中开辟一块新的区域来存放新的对象,在不影响原对象的情况下修改新的对象。《js 数据类型转换的几种方式》强制类型转换String(),toString()将字符串类型String转为数值类型NumberparseInt()字符串转数组拆分,数组转字符串连接...《JavaScript的几种继承方式》JavaScript原型链继承与构造函数继承(经典继承)组合继承:原型链+借用构造函数(最常用)原型继承(Object.create)寄生继承寄生组合继承(理想)ES6继承《让你事半功倍的 JS utils工具函数》今天分享一个积累收集的一个JSutils工具函数很久。文章有很多代码。建议保存下来慢慢看。它可以使您的业务代码开发更加高效。汇集了时间相关、DOM相关、URL相关、判断相关、图片相关、缓存相关等,部分逻辑处理比较简单。如果业务量比较复杂,建议酌情使用,但对于大部分项目来说应该绰绰有余。接下来进入代码部分~《2022年的JavaScript开发工具》编译器负责将输入的代码转换成某种目标输出格式。出于我们的目的,我们关注那些支持将现代JavaScript和TypeScript转换为与浏览器和最新版本的Node.js兼容的特定版本的ECMAscript的编译器。《手动实现一个JS执行引擎》支持解析js脚本生成语法树,格式化代码支持运行完整的js脚本支持在安全模式下运行单行表达式支持设置超时《js获取页面尺寸》大多数情况下,document.documentElement.clientWidth可以返回正确的值,但是在IE6的怪癖模式下,document.body.clientWidth返回的值是正确的,所以需要进行兼容性处理。另外,clientWidth和clientHeight是只读属性,不能赋值。面试题《js面试题(基础)梳理》JavaScript有几种数据类型?JavaScript最大安全数与最小安全数?深拷贝和浅拷贝有什么区别?什么是闭包?《js面试题(进阶)梳理》undeclared和undefined有什么区别?let&const和var有什么区别?获取DOM元素的方法有哪些?操作DOM元素的方法有哪些热门问答js如何获取一个节点下所有子节点的文本,并存储到数组中?js可以用什么方法实现文本压缩?java中如何使用js将int转为byte类型,即(byte)js递归修改树结构js双存储循环如何快速高效判断数组中的条件是否满足js如何获取今天的开始时间戳和endtimestampjs如何把内存循环中的字段取出来,并在外层循环中加入字段js如何判断数组中对象的值是否重复课程推荐《前端大数据可视化实战》相信前端开发者还是有一个对html、css、javascript、Browser等有一定了解。但了解程度如何呢?你知道什么意思吗?简单/熟练使用?深入研究?请尽量帮我回答以下问题:是不是页面写多了还停留在divset?更多风格的写作或宽度,高度,位置?你对JavaScript有深入的了解吗?为什么javascript是单线程的?(原创设计?限制原因?)JavaScript如何在Browser(浏览器)中运行?它是如何编译的?(预编译?即时编译?)你在前端领域有没有可以重点关注的方向?还是找工作的杀手锏?尝试回答之后,结果可能不是那么理想,结果也无所谓。我个人觉得有问题并不可怕,及时发现问题就是好的结果。它不是万能的,需要时刻学习和提高。课程收获:掌握一门随处可见的需要提升自身技术的技术,拓宽前端视野,强化硬实力,把握晋升机会立足于计算机底层,向前端架构进发PS:有什么想看的技术内容,可以在评论区留言哦~有什么问题可以加小姐姐微信哦~