JavaScript

JavaScript

JavaScript

37888 文章 话题 16596 浏览

如何阅读 JavaScript 源代码

作为一名前端工程师,我必须学习很多新技术才能赶上我的工作需求。学习最新技术并不容易,因为我们必须: 阅读英文文档无需翻译。(对于不会说英语的人来说,这不是一个好消息 XD) 阅读不完善/没有文档的源代码。 但我们必须面对音乐:学习最新技术或回家。身无分文的人别无选择,所以我尝试总结一些技巧以使其更容易一些。 找到入口文件 入口文件是开始阅读的好地方。这里有一些关于如何找到入口文件的技巧。 感谢 N…

JSmiles 11小时以前 浏览 847 评论 0 收藏 0

JavaScript 专题之解读 v8 排序源码

  • JavaScript 专题之解读 v8 排序源码
  • JavaScript 专题之解读 v8 排序源码
  • JavaScript 专题之解读 v8 排序源码
  • JavaScript 专题之解读 v8 排序源码

v8 是 Chrome 的 JavaScript 引擎,其中关于数组的排序完全采用了 JavaScript 实现。排序采用的算法跟数组的长度有关,当数组长度小于等于 10 时,采用插入排序,大于 10 的时候,采用快速排序。(当然了,这种说法并不严谨)。我们先来看看插入排序和快速排序。 插入排序 原理 将第一个元素视为有序序列,遍历数组,将之后的元素依次插入这个构建的有序序列中。 图示 实现 fu…

赠佳期 22小时以前 浏览 699 评论 4 收藏 0

通过 5 个示例了解 JavaScript 数组过滤器功能

JavaScript 数组有一个 filter()方法 ,让您创建一个只包含您需要的元素的新数组。 这里有 5 个常见的例子来演示如何使用 filter()。 1、过滤基元数组 这 filter()函数接受一个回调,并返回一个新数组,其中仅包含 callback回归真实。 这意味着您可以使用 filter()过滤基元数组,例如查找以“A”开头的字符串数组中的所有元素,或查找数组中的所有偶数: co…

虐人心 1天以前 浏览 981 评论 0 收藏 0

JavaScript 之 300 行代码搞定汉字转拼音

  • JavaScript 之 300 行代码搞定汉字转拼音
  • JavaScript 之 300 行代码搞定汉字转拼音
  • JavaScript 之 300 行代码搞定汉字转拼音
  • JavaScript 之 300 行代码搞定汉字转拼音

有天刷掘金,看到这样一篇文章 利用 Android 源码,轻松实现汉字转拼音功能,非常感兴趣,花了两个多小时,阅读了博客和代码,算是弄懂了原理。然后就想,是不是可以从 Java 移植到 JavaScript。 本篇博客记录的就是阅读和折腾的过程,顺便提醒自己,借助现代浏览器的能力(API),几百行代码可以轻松搞定汉字转拼音。 依据本篇博客编写的汉字转拼音库 tiny-pinyin 已上线,越300…

够运- 3天以前 浏览 868 评论 22 收藏 0

在 JavaScript 中调试 TypeError: X is not a function 错误

这 TypeError: X is not a function 错误是 JavaScript 初学者混淆的常见原因。 当您尝试调用不是函数的值时,JavaScript 会抛出此错误。 例如: const x = 42; x(); // Throws 'TypeError: x is not a function' 大多数现代 JavaScript 运行时都擅长格式化此错误,因此您知道 。 您尝试…

虐人心 3天以前 浏览 862 评论 0 收藏 0

简单介绍下 JavaScript 数组 filter() 方法

这 Array#filter() 函数 的原始数组中的所有元素 回调 返回 真 。 例如,给定一个数字 1-10 的数组,下面是如何使用 filter() 返回一个偶数数组。 const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; nums.filter(function isEven(num) { return num % 2 === 0; }); // [2…

虐人心 5天以前 浏览 668 评论 0 收藏 0

在 JavaScript 中禁用按钮

在 JavaScript 中, 按钮元素有一个 disabled 属性,您可以设置以防止单击按钮,例如,假设您有一个按钮,当您单击它时会显示警报: <button>Show Alert</button> <script> document.querySelector('#my-alert-button').addEventListener('click', fu…

虐人心 5天以前 浏览 757 评论 0 收藏 0

JavaScript 算法 KMP(Knuth-Morris-Pratt ) 算法

KMP 是著名的字符串匹配算法,效率高但比较难理解(一看就懂的请勿代入)。 字符串匹配问题是指从一段已有的文本串(记为 txt,长度记为 N)中匹配模式串(记为 pat,长度记为 M),我们首先从暴力匹配算法开始,讲一讲为什么会有 KMP(KMP是为解决什么问题)。 暴力匹配 function directSearch(pat, txt) { if (!pat || !txt) return -1…

JSmiles 2022-05-20 浏览 883 评论 0 收藏 0

如何将 forEach() 与键值对一起使用?

JavaScript 的 forEach()函数 将回调作为参数,并为数组的每个元素调用该回调,它使用值作为第一个参数和数组索引作为第二个参数调用回调。 // Prints "0: a, 1: b, 2: c" ['a', 'b', 'c'].forEach(function callback(value, index) { console.log(`${index}: ${value}`); }…

虐人心 2022-05-19 浏览 909 评论 0 收藏 0

JavaScript 如何确定一个变量是否为日期

JavaScript 日期被视为对象。 使用 typeof运算符 将返回 'object',所以你不能使用 typeof 区分一个值是否是一个日期。 你应该使用 instanceof 来判断。 let x = new Date(); if (x instanceof Date) { // will execute } Object.prototype.toString.call() 更好的选择是使…

2022-05-19 浏览 668 评论 0 收藏 0

JavaScript 算法之 动态规划

背包问题 首先我们从背包问题开始。 一个背包可以装4kg的物品,现有物品音响(3000元|4kg)笔记本电脑(2000元|3kg)、吉他(1500元|1kg),那么我们怎么拿可以使物品价值最高? 1、 最简单的方法:罗列所有组合,选取符合条件的最高的那个。 物品是1个的时候,我们可以拿或不拿,即2种选择;物品3个的时候,我们有8种选择;物品n种时,我们有 2^n 种选择——时间复杂度 O(2^n)…

JSmiles 2022-05-19 浏览 932 评论 0 收藏 0

JavaScript 算法之 KNN k-nearest neighbors K 最近邻算法

从一个很简单的例子来理解 KNN。 假设我们有一堆橙子和一堆柚子,通常情况下,柚子比橙子更大,更红;现在有一个水果,我们怎么判断它是橙子还是柚子?肯定是比较它的大小和颜色,与橙子/柚子哪个更接近。怎么判断接近?我们可以把之前的橙子/柚子画到二维点图上,X轴为颜色,Y轴为大小,然后来看看离这个水果最近的3个点,结果这3个点里,有2个是橙子,那么我们大概率可以确定,这个水果就是橙子。 这里运用到的就是…

JSmiles 2022-05-18 浏览 681 评论 0 收藏 0

JavaScript 的数据结构与算法 之 链表

1、链表 链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本事的节点和一个指向下一个元素的引用组成。相对于传统的数组,链表的一个好处在于,添加或者删除元素的时候不需要移动其他元素。然而,链表需要使用指针,因此实现链表时需要额外注意。 数组和链表的一个不同在于数组可以直接访问任何位置的元素,而想要访问链表中的一个元素,需要从起点开始迭代列表。 1.1…

遗忘曾经 2022-05-16 浏览 905 评论 2 收藏 0

JavaScript 专题之 惰性函数

需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次。 解决一:普通方法 var t; function foo() { if (t) return t; t = new Date() return t; } 问题有两个,一是污染了全局变量,二是每次调用 foo 的时候都需要进行一次判断。 解决二:闭包 我们很容易想到用闭包避免污染全局变量。 var foo…

半透明的墙 2022-05-16 浏览 930 评论 16 收藏 0

第 10 题:常见异步笔试题,请写出代码的运行结果

  • 第 10 题:常见异步笔试题,请写出代码的运行结果
  • 第 10 题:常见异步笔试题,请写出代码的运行结果
  • 第 10 题:常见异步笔试题,请写出代码的运行结果
  • 第 10 题:常见异步笔试题,请写出代码的运行结果

从一道题浅说 JavaScript 的事件循环 注:本篇文章运行环境为当前最新版本的谷歌浏览器(72.0.3626.109) 最近看到这样一道有关事件循环的前端面试题: //请写出输出内容 async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async…

风尘浪孓 2022-05-16 浏览 902 评论 46 收藏 0

简介

JavaScript 是属于网络的脚本语言,JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建 Cookies,以及更多的应用。JavaScript 是因特网上最流行的脚本语言。

更多

推荐作者

时光倒影

文章 0 评论

qq_YyjhCs

文章 0 评论

三人与歌

文章 0 评论

┼──瘾||

文章 1 评论