1 天前 / Yourtion
本文将从 VSCode JavaScript Debugger 的功能入手,从源码角度分析其实现对应功能所使用的技术手段及优秀的代码设计,让大家对其中的功能及实现原理有大致理解。 前言 调试(Debugging)作为软件开发环境中无法缺少的部分,长期以来都作为评价一款 IDE 产品优劣的重要指标,VS Code 在 1.47版本「1」中废弃了旧版本的 NodeDebug「2」、DebuggerForChrome 「3」等插件集,正式采用了全新的 JavaScript Debugger 插件,用于满足所有 JavaScript 场景下的调试需求,不仅提供了丰富的调试能力...
16 天前 / cxc_xinconan
前言 介绍沙箱机制的古往今来。今日前端早读课文章由 @hijiangtao 投稿分享。 正文从这开始~~ 随着微前端的不断发展、被更多的团队采用,越来越多开始对沙箱这个概念有所了解。沙箱,即 sandbox,意指一个允许你独立运行程序的虚拟环境,沙箱可以隔离当前执行的环境作用域和外部的其他作用域,外界无法修改该环境内任何信息,沙箱内的东西单独运行,环境间相互不受影响。本文计划谈谈微前端的 JavaScript 隔离,即沙箱机制的古往今来。
44 天前 / Ryan众乐
当我们遇到这种稍微有点麻烦的代码时,可能上面的总结无法解释出来的时候,那我们该如何才能判断出这段代码的一个结果呢?或者说,JS 引擎它是如何来解析这段代码的呢?就会涉及到“预编译”这部分内容,根据预编译的规则来解释这段代码。 到这里,我们不再讨论上段代码的结果是什么,想了解的朋友自行打印。 四、暗示全局变量(imply global variable) 假如,我们在全局下写 a = 1; console.log( a ),那其实是和 var a = 1; console.log( a )是一样的,其实就是在全局对象 window 中添加了一个变量名为 a,值为 1 的属性...
55 天前 / Inputing
摄影:产品经理某种甜点 有时候,我们的电脑上没有安装 Python,但你需要验证一段 Python 代码的运行效果。 又有时候,你想做一个网页,但是你只会 HTML 和 Python。那么如果要做一个带有一些复杂逻辑的网页,只能去学 JavaScript 吗? 其实未必。如果你不考虑网页美观的话,你可以用 HTML + Python 实现一个简单的网页。 今天我们要介绍的东西,叫做 PyScript,使用它,不需要安装任何软件。只要有一个记事本,就能写一段 HTML+Python 的代码。写完以后,双击这个 HTML 文件,用浏览器打开,就能直接看到 Python 代码的运行结果。
71 天前 / 冷星1024
今天我们来看一个进入 statge3 的新的 JavaScript 提案:ShadowRealm API。 JavaScript 的运行环境领域(realm),这个词比较抽象,其实就代表了一个 JavaScript 独立的运行环境,里面有独立的变量作用域。 比如下面的代码: constwin=frames[0].window; console.assert(win.globalThis!==globalThis);//true console.assert(win.Array!==Array);//true 每个 iframe 都有一个独立的运行环境,document 的全局对象不同于 iframe 的全局对象,类似的,全局对象上的 Array 肯定也不同。
84 天前 / 九彩拼盘
今天来分享 GitHub 上最受欢迎的 Top 20 JavaScript 项目,这些多是实用的小型工具库,快来看看你都用过哪些吧! 1. debugdebug 是一个模仿 Node.js 核心调试技术的小型 JavaScript 调试实用程序。适用于 Node.js 和 Web 浏览器。 debug 每周下载量:195,681,684 GitHub:https://github.com/debug-js/debug 2. chalkchalk 是一个终端字符串美化工具。默认 node 在输出终端的文字都是黑白的,为了使输出不再单调,就可以使用这个库来添加文字背景和字体颜色。
97 天前 / 九彩拼盘
《剑指 Offer:专项突破版》是一个算法题集。该题单包含了程序员在准备面试过程中必备的数据结构与算法知识。具体包含: 数据结构:整数、数组、字符串、链表、栈、栈、队列、树、堆和前缀树。算法:二分查找、排序、回溯法、动态规划和图搜索。本文来分享下栈部分题的解法~ 栈介绍栈是操作受限的数组。栈的插入和删除操作都发生在数组的末尾 ( 也叫栈顶)。它的特点是“后入先出”:后入栈的元素先出来。 基于 js 的数组,很容易实现栈: classStack{ constructor(){ this.data=[]; } //入栈 push(val){ this.data.push(val); } //出栈 pop(){ returnthis....
104 天前 / 浪客书心
TypeScript 团队在深夜突然发了一条推,神秘兮兮说:“如果我们可以直接在 JavaScript 中支持类型,会怎么样?”。 他们在评论区说:“类型作为注释”的提案意味着浏览器可以直接运行通过了 TS 检查的代码 ( 即使它们没有做任何类型检查)。这意味着更好的编辑体验和更快的迭代。 这是一个很让人兴奋的想法,接下来我们具体看看这个提案的内容。 这是一个新的 stage0 的语法提案,暂时还未提交给 TC39。github 的仓库地址是 https://github.com/giltayar/proposal-types-as-comments 背景最近在 JavaScript 领域看到的一个趋势是...
105 天前 / 九彩拼盘
《剑指 Offer:专项突破版》是一个算法题集。该题单包含了程序员在准备面试过程中必备的数据结构与算法知识。具体包含: 数据结构:整数、数组、字符串、链表、哈希表、栈、队列、树、堆和前缀树。算法:二分查找、排序、回溯法、动态规划和图搜索。本文来分享下哈希表部分题的解法~ 哈希表介绍哈希表(Hash table,也叫散列表),是根据关键码值 (Key value)而直接进行访问的数据结构。 哈希表的优势是高效。哈希表的插入、删除和查找的时间复杂度都是:O(1)。因此,哈希表经常被用来优化时间效率。 在 js 中,对象就是哈希表。
106 天前 / 高飞
01 为元素添加 on 方法 Element.prototype.on = Element.prototype.addEventListener; NodeList.prototype.on = function (event, fn) {、 []['forEach'].call(this, function (el) { el.on(event, fn); }); return this; }; 02 为元素添加 trigger 方法 Element.prototype.trigger = function(type, data) { var event = document.createEvent("HTMLEvents"); event.initEvent(type, true, true); event.data = data || {}; event.eventName = type; event.target = this; this.dispatchEvent(event); return this; }...
106 天前 / 九彩拼盘
《剑指 Offer:专项突破版》是一个算法题集。该题单包含了程序员在准备面试过程中必备的数据结构与算法知识。具体包含: 数据结构:整数、数组、字符串、链表、哈希表、栈、队列、树、堆和前缀树。算法:二分查找、排序、回溯法、动态规划和图搜索。本文来分享下链表部分题的解法~ 链表介绍链表是一种常见的基础数据结构。在链表中,每个节点包含指向下一个节点的指针,这些指针把节点连接成链状结构。 js 中没有链表这个数据结构。根据链表的定义,可以简单的实现一个: functionListNode(val){ this.val=val; this.next=null; } 链表的特点是: 插入或删...
111 天前 / cxc_xinconan
大家好,我是零一,JavaScript 即将推出两个新的数据类型:Record 和 Tuple ,这俩是啥呢?其实就是一个只读的 Object 和 Array,其实在其它语言中已经有类似的数据类型了,例如 Python 中也有 Tuple(元祖)这一类型,作用也是一个只读的数组(在 Python 里叫只读的列表),一起来了解一下,这个特性是一个第 2 阶段提案(即差不多稳了),想要提前体验的,文末也有 polyfill 的使用教程! 基础写法 //Records constmyRecord=#{ name:'01', age:23 } //Tuple constmyTuple=#['1','2','3'] 其实就是在原先的对象和数组前面加了个 # 可读特性 Record 和 Tup...
118 天前 / 浪客书心
JavaScript 是一门神奇的语言,它的某些特性让人捉摸不透,但其简洁和灵活性也让人爱不释手。 有些功能逻辑按常规思路可能需要不少代码,但是利用某些 API 和语法特性,短短一行代码就能完成!本文简单列举一些常用的一行代码,希望对你有用。 1. 获取随机布尔值 (true/false)Math.random()会返回 0 到 1 之间随机的数字,因此可以利用返回值是否比 0.5 小来返回随机的布尔值。 constrandomBoolean=()=>Math.random()>=0.5; console.log(randomBoolean()); 2. 反转字符串结合数组的反转方法...
120 天前 / Ryan众乐
前言 前有【第 2511 期】2021 年 JavaScript 明星项目,今天又一份 Javascript 报告。今日前端早读课文章由编译 @ 张洁,责编 @ 屠敏,由公号:CSDN 授权分享。 正文从这开始~~ 随着技术的快速发展,JavaScript 用户规模不断扩大,如今在全球已拥有高达 1400 万的用户,并且这个数量还在不断增长。2021 年的 JavaScript 现状调查于 2021 年 1 月 13 日至 2022 年 2 月 2 日进行,收集了 16,085 份回复。
121 天前 / 九彩拼盘
《剑指 Offer:专项突破版》是一个算法题集。该题单包含了程序员在准备面试过程中必备的数据结构与算法知识。具体包含: 数据结构:整数、数组、字符串、链表、哈希表、栈、队列、树、堆和前缀树。算法:二分查找、排序、回溯法、动态规划和图搜索。本文来分享下数组部分题的解法~ 题 1 - 剑指 Offer II 006. 排序数组中两个数字之和输入一个递增排序的数组和一个值 k,请问如何在数组中找出两个和为 k 的数字并返回它们的下标?假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。