26 热度

Javascript 引擎 V8 7.7 版本发布

JavaScript 引擎 V8 发布了 7.7 版本,目前处于测试阶段,正式版将于几个星期后随 Chrome 77 Stable 一起发布。更新内容如下:延迟反馈分配为了优化 JavaScript,V8 收集关于传递给各种操作数(例如 + 或 o.foo)的操作数类型的反馈,这种反馈用于优化这些操作,使它们适合这些特定类型。为了减少 V8 的内存使用量,现在只在函数执行了一定数量的字节码之后才分配反馈向量。这避免了为没有从已收集反馈中受益的短期函数分配反馈向量。实验表明,延迟分配反馈向量可以节省约 2-8% 的 V8 堆大小。对于 Chrome 用...

收录时间: 2019-08-15
分类: Javascript
贡献者: Rector
50 热度

处理 JS中 undefined 的 7 个技巧

为了保证的可读性,本文采用意译而非直译。想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你!大约8年前,当原作者开始学习JS时,遇到了一个奇怪的情况,既存在undefined 的值,也存在表示空值的null。它们之间的明显区别是什么?它们似乎都定义了空值,而且,比较null == undefined的计算结果为true。大多数现代语言,如Ruby、Python或Java都有一个空值(nil或null),这似乎是一种合理的方式。对于JavaScript,解释器在访问尚未初始化的变量或对象属性时返回undefined。

收录时间: 2019-08-01
分类: Javascript
贡献者: Rector
74 热度

JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

栈、队列、链表、堆 是数据结构与算法中的基础知识,是程序员的地基。笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便以后复习。

收录时间: 2019-07-01
分类: Javascript
贡献者: Rector
138 热度

JS 引擎 V8 发布 7.6 版本,别问,问就提升性能

JavaScript 引擎 V8 发布了 7.6 版本,目前处于 beta 阶段,正式版将于几个星期后随 Chrome 76 Stable 一起发布。此版本通过以下几个特性改进又提升了性能:改进 JSON.parse在现代 JavaScript 应用中,JSON 通常用作传递结构化数据的格式。通过加速 JSON 解析,可以减少通信的延迟。此版本中,JSON 解析器进行了大修,以便更快地扫描和解析 JSON,这使得流行网页提供的数据解析速度提高了 2.7 倍。在 V8 v7.5 之前,JSON 解析器是一个递归解析器,它的原生堆栈空间受传入 JSON 数据的嵌套深度影响,这意味着可以在非常深层嵌...

收录时间: 2019-06-28
分类: Javascript
贡献者: Rector
95 热度

ES2019 / ES10有什么新功能?

2019年版的ECMAScript规范增加了许多新功能,在这里我将介绍其中的一些新功能。

收录时间: 2019-06-22
分类: Javascript
贡献者: Rector
76 热度

[译]带你理解 Async/await

「async/await」是 promises 的另一种更便捷更流行的写法,同时它也更易于理解和使用。Async functions让我们以 async 这个关键字开始。它可以被放置在任何函数前面,像下面这样:async function f() {return 1;}在函数前面的「async」这个单词表达了一个简单的事情:即这个函数总是返回一个 promise。即使这个函数在语法上返回了一个非 promise 的值,加了「async」这个关键字就会指示 JavaScript 引擎自动将返回值包装成一个解析后的 promise。例如,以下的代码就返回了一个以 1 为结果的解析后的 promis...

收录时间: 2019-06-17
分类: Javascript
贡献者: Rector
AD 友情赞助
166 热度

JavaScript判断是否为页面底部

当用户滚动到页面底部时 自动加载更多数据。更符合用户直觉体验很好。需要注意页面数据过多造成的卡顿。如果页脚有其他数据用户需要翻遍数据才能看到页脚。当然分页没有绝对的银弹得根据不同的情况进行略微的调整和交叉搭配使用分页方式。例如:页面页脚有需要用户查看的数据时,可以使用 自动加载更多数据,当加载二到三页时提示 加载更多数据 按钮,使得特定用户可以较为方便的看到页脚内容更多的情景就不一一列举了。 ...

收录时间: 2019-03-14
分类: Javascript
贡献者: Rector
187 热度

如何使用JavaScript构建模态框插件

作为一位Web开发人员而言,模态框(Modal)并不会陌生。就我个人而言,我更为熟悉的是怎么通过CSS来编写一个模态框以及怎么通过CSS给模态框添加一些动效。正好最近工作中也和Modal框杠上了。另外想更好的设计一个模态框用来满足业务需求的普遍性和实用性,甚至是达到可配置性。所以一直在探究模态框相关的知识,同时正好看到了@Ken Wheeler的教程,对于我这样的菜鸟,能很好的了角如何使用原生的J...

收录时间: 2019-01-20
分类: Javascript
贡献者: Rector
250 热度

从项目的 GitHub 星星数看2018年 JavaScript 生态圈

第三年 JavaScript Rising Stars 统计结果出来了,官方分析了 Best of JavaScript 上的项目,比较这些项目过去12个月,在 GitHub 上增加的星标数,将其排名并绘制成图表,呈现 JavaScript 社群的发展状况。Best of JavaScript是提供网页平台与Node.js相...

收录时间: 2019-01-20
分类: Javascript
贡献者: Rector
212 热度

JavaScript 是如何工作的:深入网络层 + 如何优化性能和安全

正如在上一篇关于 渲染引擎的博客文章中提到的,我们认为优秀的 JavaScript 开发人员和杰出的 JavaScript 开发人员之间的区别在于,后者不仅理解语言的具体细节,而且理解其内部结构和周遭环境。讲一点历史49年前,一种叫做 ARPAnet 的网诞生了。它是一个早期的 分组交换网络,也是第一个 实现TCP/IP套件的网络。20年后,蒂姆·伯纳斯-李提出了一种“网状结构”的建议,这种结...

收录时间: 2019-01-16
分类: Javascript
贡献者: Rector
268 热度

简约强大数组操作组合

在实际js开发中对数组操作频率非常高,看过一些小伙伴的一些用法,挺有意思,在这里小记(不全)一下,备忘。5个迭代方法:every、filter、forEach、map和some every():对数组中的每一项运行给定函数,如果该函数每一项都返回true,则返回true; filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组; forEach():对数组中的每一项运行给定函数,这个方法没有返回值; map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组; some():对数组中的每一项运行给定函数,如果该函数任意一项返回true,则返回true;

收录时间: 2018-12-26
分类: Javascript
贡献者: Rector
294 热度

JavaScript开发的40+个经典技巧

JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。JavaScript还是很多新手踏入编程世界的第一个语言。既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人。能够编写结构清晰、性能高效的JavaScript代码的开发人员,现如今已成了招聘市场最受追捧的人。 在这篇文章里,将和大家分享一些JavaScript的技巧、秘诀和最佳实践,除了少数几个外,不管是浏览器的JavaScript引擎,还是服务器端JavaScript解释器,均适用。

收录时间: 2018-12-07
分类: Javascript
贡献者: Rector
329 热度

JavaScript线程机制与事件机制

一、进程与线程1.进程进程是指程序的一次执行,它占有一片独有的内存空间,可以通过windows任务管理器查看进程(如下图)。同一个时间里,同一个计算机系统中允许两个或两个以上的进程处于并行状态,这是多进程。比如电脑同时运行微信,QQ,以及各种浏览器等。浏览器运行是有些是单进程,如firefox和老版IE,有些是多进程,如chrome和新版IE。2.线程有些进程还不止同时干一件事,比如W...

收录时间: 2018-10-16
分类: Javascript
贡献者: Rector
412 热度

原生js替换jQuery各种方法-中文版

原文https://github.com/nefe/You-D...You Don't Need jQuery前端发展很快,现代浏览器原生 API 已经足够好用。我们并不需要为了操作 DOM、Event 等再学习一下 jQuery 的 API。同时由于 React、Angular、Vue 等框架的流行,直接操作 DOM 不再是好的模式,jQuery 使用场景大大减少。本项目总结了大部分 jQu...

收录时间: 2018-10-08
分类: Javascript
贡献者: Rector
388 热度

JavaScript字符串操作方法大全,包含ES6方法

一、charAt()返回在指定位置的字符。var str="abc"console.log(str.charAt(1))//a二、charCodeAt()返回在指定的位置的字符的 Unicode 编码。var str="abc"console.log(str.charCodeAt(1))//98三、concat()连接字符串。var a = "abc";var b = "def";va...

收录时间: 2018-10-08
分类: Javascript
贡献者: Rector
AD 友情赞助
452 热度

从0到1实现Promise

前言Promise大家一定都不陌生了,JavaScript异步流程从最初的Callback,到Promise,到Generator,再到目前使用最多的Async/Await(如果对于这些不熟悉的可以参考我另一篇文章《JavaScript异步编程》),这不仅仅是技术实现的发展,更是思想上对于如何控制异步的递进。Promise作为后续方案的基础,是重中之重,也是面试时候最常被问到的。今天我们就一起...

收录时间: 2018-09-30
分类: Javascript
贡献者: Rector
401 热度

JavaScript循环遍历你会用哪些?

总结JavaScript中的循环遍历定义一个数组和对象const arr = ['a', 'b', 'c', 'd', 'e', 'f'];const obj = {a: 1,b: 2,c: 3,d: 4}for()经常用来遍历数组元素遍历值为数组元素索引for (let i = 0, len = arr.length; i < len; i++) {console.log(i); ...

收录时间: 2018-09-30
分类: Javascript
贡献者: Rector
359 热度

SPA路由机制详解(看不懂不要钱~~)

前言总所周知,随着前端应用的业务功能起来越复杂,用户对于使用体验的要求越来越高,单面(SPA)成为前端应用的主流形式。而大型单页应用最显著特点之一就是采用的前端路由跳转子页面系统,通过改变页面的URL,在不重新请求页面的情况下,更新页面视图。更新视图但是浏览器不重新渲染整个页面,只是重新渲染部分子页面,加载速度快,页面反应灵活,这是 SPA 的优势,这也是前端路由原理的核心,这会给人一种仿佛在...

收录时间: 2018-09-22
分类: Javascript
贡献者: Rector
401 热度

[译] 我从没理解过 JavaScript 闭包

正如标题所说,JavaScript 闭包对我来说一直是个迷。我 看过 很多 文章,在工作中用过闭包,甚至有时候我都没有意识到我在使用闭包。 最近参加一个交流会,有人用某种方式向我解释了闭包,点醒了我。这篇文章我也将用这种方式来解释闭包。这里要称赞一下 CodeSmith 的优秀人才和他们的《JavaScript The Hard Parts》系列。

收录时间: 2018-09-09
分类: Javascript
贡献者: Rector
432 热度

高效遍历匹配Json数据,避免嵌套循环

工作中经常会遇到这样的需求:1.购物车列表中勾选某些,点击任意一项,前往详情页,再返回购物车依旧需要呈现勾选状态2.勾选人员后,前往别的页面,再次返回,人员依旧程勾选状态3.等等....数据结构如下:// 缓存数据var students = [{ id: 35, name: '小明', age: 25, address: '环球中心',checked:true},{ id: 36, name: ...

收录时间: 2018-09-06
分类: Javascript
贡献者: Rector
AD 友情赞助