一切福田,不離方寸,從心而覓,感無不通。

这些一行 JS 实现功能的代码,让你看起来像一个前端专家

JavaScript 可以做很多神奇的事情! 从复杂的框架到处理 API,有太多的东西需要学习。 但是,它也能让你只用一行代码就能做一些了不起的事情。 看看这 13 句 JavaScript 单行代码,会让你看起来像个专家! 1. 获取一个随机布尔值 (true/false) 这个函数使用 Math.random() 方法返回一个布尔值(true 或 false)。Math.random 将在 0 和 1 之间创建一个随机数,之后我们检查它是否高于或低于 0.5。这意味着得到真或假的几率是 50%/50%。

  2. 检查日期是否为工作日 使用这个方法,你就可以检查函数参数是工作日还是周末。

  3. 反转字符串 有几种不同的方法来反转一个字符串。以下代码是最简单的方式之一。

  4. 检查当前 Tab 页是否在前台 我们可以通过使用 document.hidden 属性来检查当前标签页是否在前台中。

  5. 检查数字是否为偶数 最简单的方式是通过使用模数运算符(%)来解决。如果你对它不太熟悉,这里是 Stack Overflow 上的一个很好的图解。

  6. 从日期中获取时间 通过使用 toTimeString() 方法,在正确的位置对字符串进行切片,我们可以从提供的日期中获取时间或者当前时间。

  7. 保留小数点(非四舍五入) 使用 Math.pow() 方法,我们可以将一个数字截断到某个小数点。

  8. 检查元素当前是否为聚焦状态 我们可以使用 document.activeElement 属性检查一个元素当前是否处于聚焦状态。

  9. 检查浏览器是否支持触摸事件

  10. 检查当前用户是否为苹果设备 我们可以使用 navigator.platform 来检查当前用户是否为苹果设备。

  11. 滚动到页面顶部 […]

龙生   26 Jan 2021
View Details

命名秘籍周获近五千星——GitHub 热点速览 v.21.04

作者:HelloGitHub-小鱼干 命名一直是编程界的难点,这次 naming-cheatsheet 就能帮上你的忙。按照它的 SID(Short.、Intuitive、Descriptive)原则,你一定能取出极佳的变量 / 函数名。同样,能解决你可视化问题的还有 Apache 的 superset。如果你想了解 Google、微软、Netflix 之类的大厂在生产环境应用了哪些机器学习技术,applied-ml 就能娓娓道来各大科技公司的 ml 技术。 这期依旧是小鱼干自由发挥的一期热点趋势,和原来一样如果你想了解特定主题的 GitHub Repo,小鱼干定会留意这周的 GitHub Trending。 以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 day 的项目会标注 New,无该标志则说明项目 release 超过半月。由于本文篇幅有限,还有部分项目未能在本文展示,望周知 🌝 本文目录 本周特推 1.1 命名秘籍:naming-cheatsheet 1.2 机器学习库:best-of-ml-python GitHub Trending 周榜 2.1 免费编程书籍:free-programming-books 2.2 大厂的技术实践:applied-ml 2.3 新的编译方式:Svelte 2.4 可视化工具:superset 2.5 模拟数据:faker.js 2.6 角色扮演:ActionRoguelike 往期回顾 1. 本周特推 1.1 命名秘籍:naming-cheatsheet 本周 star 增长数:4,900+ naming-cheatsheet 是一个两年之前的项目,这周焕发了新生一周获得了近 5k star。本项目旨在帮你解决命名困难的问题,教你如何便捷、轻松地进行命名。命名谨记以下三点(SID): 短:一个名字一定不要花很长的时间来键入,因此,记住; 直观:一个名字必须读起来自然,尽可能接近日常用语; 描述性:一个名字必须以最有效的方式反映它所做 / 拥有的东西。 GitHub 地址→github.com/kettanaito/… 1.2 机器学习库:best-of-ml-python 本周 star 增长数:2,750+ […]

龙生   26 Jan 2021
View Details

Naming cheatsheet

Naming things is hard. This sheet attempts to make it easier. Although these suggestions can be applied to any programming language, I will use JavaScript to illustrate them in practice. English language Use English language when naming your variables and functions.

  Like it or not, English is the dominant language in programming: the syntax of all programming languages is written in English, as well as countless documentations and educational materials. By writing your code in English you dramatically increase its cohesiveness. Naming convention Pick one naming convention and […]

龙生   26 Jan 2021
View Details

Blockquote

Blockquote 对象 Blockquote 对象代表着一个 HTML 引用(blockquote)块元素。 <blockquote> 标签定义摘自另一个源的块引用。 一个 <blockquote> 元素的内容通常展现为一个左、右两边进行缩进的段落。 在 HTML 文档中的每一个 <blockquote> 标签创建时,都会创建一个 Blockquote 对象。   from:

龙生   25 Jan 2021
View Details

阻止IIS应用程序池自动回收

在IIS中找到这个站点所用的程序池,点击“高级设置…” 在打开的列表中更改以下设置: 回收 固定时间间隔(分钟) 改为 0 虚拟/专用内存限制(KB) 改为 0 进程模型 闲置超时(分钟) 改为 0 from:bubuko.com/infodetail-1708029.html

龙生   25 Jan 2021
View Details

Web 防爬指南

(或至少让其更难抓取) 这篇文章我翻译自:https://github.com/JonasCz/How-To-Prevent-Scraping,因为最近在看一些反爬的资料,无意间在 Github 发现这篇文章,我觉得写的很全面,所以想要翻译一下,顺便进行吸收。另外让我觉得非常赞的是这个文章从服务端和前端的角度都做了分析,我们应该从哪些点去做优化,而且每个点都举了例子,有些还给出了注意点。虽然文中有些提到的一些点很基础,也有很多我们目前在业务中也在使用,但是我还是从中吸收到了一些新东西,里面文中外部链接有很多,但是公众号这里不允许外链,所以大家可以点击文末最后的"阅读原文"到 Github 去查看,Github Markdown 的排版可能也比这里更好 : )。 (最后,有些仓促,可能有些注意不到的措别字,还请多多包涵) 提示:这篇文章是我 Stack Overflow 这个问题回答的扩展,我把它整理在 Github 因为它实在是太长了,超过了 Stack Overflow 的字数限制(最多 3 万个字,这文章已经超过 4 万字) 欢迎大家修改、完善还有分享,本文使用 CC-BY-SA 3.0 许可。 本质上说,防抓的目的在于增加脚本或机器获取你网站内容的难度,而不要影响真实用户的使用或搜索引擎的收录 不幸的是这挺难的,你需要在防抓和降低真实用户以及搜索引擎的可访问性之间做一下权衡。 为了防爬(也称为网页抓取、屏幕抓取、网站数据挖掘、网站收割或者网站数据获取),了解他们的工作原理很重要,这能防止他们能高效爬取,这个就是这篇文章的主要内容。 通常情况下,抓取程序的目的是为了获取你网站特定的信息,比如文章内容、搜索结果、产品详情还有网站上艺术家或者相册信息。他们爬取这些内容用于维护他们自己的网站(甚至通过你的内容赚钱!),或者制作和你网站不一样的前端界面(比如去做移动 APP),还有一些可能作为个人研究或分析使用。 实际上,有特别多的爬虫类型,而且他们的爬取方式都不太相同: 蜘蛛,比如 Google’s bot 或者网站复制工具 HTtrack,他们访问你的网站,而且在页面中寻找链接后递归的去爬取以获取页面的数据。有时候他们只用于获取特定数据,而不会全部爬取,通常结合 HTML 分析器在页面中获取想要的数据。 Shell 脚本,有时候,通用的 Unix 工具也被用来爬取:wget 或者 curl 用于下载页面,用 Grep (Regex) 去分析获取想要的数据,一般都会写一个 Shell 脚本。这些都是最简单的爬虫,也是最脆弱的一类爬虫(Don’t ever try parse HTML with regex !),所以是最早发现和防范的爬虫。 HTML 爬取器和分析器,会基于 Jsoup、Scrapy 还有其他一些工具。和 shell 脚本基于正则类似,他们呢基于特定模式(pattern)分析你的 HTML 结构从而获取想要的数据。 举个例子:如果你的网站有搜索功能,那这个爬虫可能会模拟提交一个搜索的 HTTP 请求,然后从搜索结果页中获取所有的链接和标题,有时候会构造有成千上百不同的请求,只是为了获取标题和链接而已。这是最常见的一类爬虫。 屏幕爬取,比如会基于 Selenium 或者 PhantomJS,他们实际上会通过真实浏览器打开你的网站,因此也会运行你网站的 JavaScript、AJAX 或者其他的,然后他们从你的页面获取自己想要的文本内容,通常: 基于浏览器的爬取很难处理,他们运行脚本,渲染 HTML,就像真实用户一样访问你的网站。 等页面加载完毕, JavaScript 也执行之后,从浏览器获取 HTML 结构,然后用 HTML 分析器去获取想要的数据或者文本。这是常见做法,所以有很多方法可以防止这类 HTML 分析器或爬虫。 […]

龙生   25 Jan 2021
View Details

MySQL 查询优化

索引 索引是什么 MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。 可以简单理解为排好序的快速查找数据结构。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。 优缺点 优点 提高数据检索的效率,降低数据库的 IO 成本。 通过索引列对数据进行排序,降低数据排序的成本,降低了 CPU 的消耗。 缺点 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE 和 DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为 更新所带来的键值变化后的索引信息。 实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间 的。 B-Tree 和 B+Tree 区别 B-Tree 的关键字和记录是放在一起的,叶子节点可以看作外部节点,不包含任何信息;B+Tree 的非叶子节点中只有关键字和指向下一个节点的索引,记录只放在叶子节点中。 在 B-Tree 中,越靠近根节点的记录查找时间越快,只要找到关键字即可确定记录的存在;而 B+Tree 中每个记录的查找时间基本是一样的,都需要从根节点走到叶子节点,而且在叶子节点中还要再比较关键字。从这个角度看 B-Tree 的性能好像要比 B+Tree 好,而在实际应用中却是 B+Tree 的性能要好些。因为 B+Tree 的非叶子节点不存放实际的数据,这样每个节点可容纳的元素个数比 B-Tree 多,树高比 B-Tree 小,这样带来的好处是减少磁盘访问次数。尽管 B+Tree 找到一个记录所需的比较次数要比 B-Tree 多,但是一次磁盘访问的时间相当于成百上千次内存比较的时间,因此实际中 B+Tree 的性能可能还会好些,而且 B+Tree 的叶子节点使用指针连接在一起,方便顺序遍历(例如查看一个目录下的所有文件,一个表中的所有记录等),这也是很多数据库和文件系统使用 B+Tree 的缘故。 为什么 B+Tree 比 B-Tree 更适合实际应用中操作系统的文件索引和数据库索引? B+Tree 的磁盘读写代价更低 B+Tree 的内部结点并没有指向关键字具体信息的指针。因此其内部结点相对 B-Tree 更小。如果把所有同一内部结点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多。一次性读入内存中的需要查找的关键字也就越多。相对来说 IO 读写次数也就降低了。 B+Tree 的查询效率更加稳定 由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当。 索引分类 单值索引:即一个索引只包含单个列,一个表可以有多个单列索引 建表时,加上 key(列名) 指定 单独创建,create index 索引名 on 表名(列名) 单独创建,alter table […]

龙生   25 Jan 2021
View Details

2021最新版阿里巴巴Java性能调优速成手册强烈推荐

为什么要做性能调优? 一款线上产品如果没有经过性能测试,那它就好比是一颗定时炸弹,你不知道它什么时候会出现问题,你也不清楚它能承受的极限在哪儿。 所以,要不要做性能调优,这个问题其实很好回答。所有的系统在开发完之后,多多少少都会有性能问题,我们首先要做的就是想办法把问题暴露出来,例如进行压力测试、模拟可能的操作场景等等,再通过性能调优去解决这些问题。 好的系统性能调优不仅仅可以提高系统的性能,还能为公司节省资源。这也是我们做性能调优的最直接的目的!所以,接下来我就给大家带来了一份“阿里巴巴lava性能调优实战(2021华山版)”想要学习的朋友们,我们就先来看看文章大概内容:(同时在文末会有笔记领取方式!大家自行解决) 主要内容 模块一 概述 为你建立两个标准。-个是性能调优标准,告诉你可以通过哪些参数去衡量系统性能;另-一个是调优过程标准,带你了解通过哪些严格的调优策略,我们可以排查性能问题,从而解决问题。 模块二 Java 编程性能调优 JDK是Java语言的基础库,熟悉JDK中各个包中的工具类,可以帮助你编写出高性能代码。这里我会从基础的数据类型讲起,涉及容器在实际应用场景中的调优,还有现在互联网系统架构中比较重要的网络通信调优。 03.字符串性能优化不容小觑,百M内存轻松存储几十G数据 05.ArrayList还是LinkedList?使用不当性能差千倍 06.Stream如何提高遍历集合效率? 10.网络通信优化之通信协议:如何优化RPC网络通信? 11.推荐几款常用的性能测试工具 模块三 多线程性能调优 目前大部分服务器都是多核处理器,多线程编程的应用广泛。为了保证线程的安全性,通常会用到同步锁,这会为系统埋下很多隐患;除此之外,还有多线程高并发带来的性能问题,这些都会在这个模块重点讲解。 12.多线程之锁优化(上):深入了解Synchronized同步锁的优化方法 13.多线程之锁优化(中):深入了解Lock 同步锁的优化方法 15.多线程调优(上):哪些操作导致了上下文切换? 17.并发容器的使用:识别不同场景下最优容器 模块四 JVM性能监测及调优 Java 应用程序是运行在JVM之上的,对JVM进行调优可以提升系统性能。这里重点讲解Java对象的创建和回收、内存分配等。 20. 磨刀不误砍柴工:欲知JVM调优先了解JVM内存模型 21.深入JVM即时编译器JIT,优化Java编译 22.如何优化垃圾回收机制? 模块五 设计模式调优 在架构设计中,我们经常会用到-一些设计模式来优化架构设计。这里我将结合一-些复 杂的应用场景,分享设计优化案例。 29.生产者消费者模式:电商库存设计优化 30. 装饰器模式:如何优化电商系统中复杂的商品价格策略? 模块六 数据库性能调优 数据库最容易成为整个系统的性能瓶颈,这里我会重点解析-一些数据库的常用调优方法。 33.MySQL调优之事务:高并发场景下的数据库事务调优 35.记一次线上SQL死锁事故:如何避免死锁? 38.数据库参数设置优化,失之毫厘差之千里 模块七 实战演练场 以上六个模块的内容,都是基于某个点的调优,现在是时候把你前面所学都调动起来了,这里我将带你进入综合性能问题高频出现的应用场景,学习整体调优方法。 41.如何设计更优的分布式锁? 43.如何使用缓存优化系统性能? 最后 作者:努力向上的小芷 链接:https://juejin.cn/post/6920124384027885581 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   25 Jan 2021
View Details

JS数据类型转换

显式转换 其他数据类型转换成Number 将其他数据类型的值转化为数值时,有几种方法? Number() parseInt() parseFloat() +/- (一元操作符) 说一说上面方法的异同? 它们都是可以将非数值转化为数值,不同点如下:

  规则 除以下情况外能正常转化为数字,其余全为NaN

  其他数据类型转换成String 将其他数据类型的值转化为字符串时,有几种方法? 其他数据类型的值.toString() String(其它数据类型的值) 说一说上面方法的异同?

  规则 字符串拼接时,加号两边如果出现字符串或者引用类型的值({}、[]、function(){}),都会变成字符串拼接(因为原本应该是把引用类型的值转为数字,但是需要先转为字符串,遇到字符串就直接变成字符串拼接了)

 

  其他数据类型转换成Boolean 将其他数据类型的值转化为布尔值时,有几种方法? ! 转换为布尔类型后取反 !! 转换为布尔类型 Boolean 规则?

  隐式转换 isNaN、Math方法

  + 操作

  == 「类型一样的几个特殊点」

  2.「类型不一样的转换规则」

  作者:妍等等xy 链接:https://juejin.cn/post/6920236688224550925 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   25 Jan 2021
View Details