标签:JavaScript

[源码级解析]分析并解决JavaScript里RegExp类中test()方法结果不固定的情况及其源码解析

在开发一个前端表单过程中,我使用了正则表达式对用户填写的内容进行校验,却在使用过程中发现了奇怪的现象:RegExp类的test()方法对同一字符串,在不同时间竟有不同的结果。本文将为读者分享我解决这一问题的方法及其背后的原理。

继续阅读 [源码级解析]分析并解决JavaScript里RegExp类中test()方法结果不固定的情况及其源码解析

三行JavaScript代码屏蔽浏览器的DevTools,保障前端页面的基础安全

尽管大多数浏览器中内置的DevTools为日常开发和调试带来了巨大便利,但在某些需要保证『安全性』的场合,例如在线考试、在线教育、或是一些行业应用,我们也对DevTools『恨之入骨』:抓包、修改数据、插入恶意代码、查看源码、Debug深入原理……
但其实屏蔽DevTools的方法非常简单,简单到只需要三行代码。

继续阅读 三行JavaScript代码屏蔽浏览器的DevTools,保障前端页面的基础安全

如何使用JavaScript判断一个值是否在一个数组中(续)—— JavaScript&TypeScript中的迭代器

『如何使用JavaScript判断一个值是否在一个数组中』一文里,我提到了使用Array.prototype.includes()Array.prototype.indexOf()两种方法来实现这一需求,但其实对于JavaScript这样一门极为灵活的语言来说,实现方法远不止以上两种。

继续阅读 如何使用JavaScript判断一个值是否在一个数组中(续)—— JavaScript&TypeScript中的迭代器

使用轻量插件,轻松美化prompt()与alert()

由于prompt()在不同浏览器下的实现有着巨大差异,甚至有个别浏览器不提供对prompt()的支持,因此定制这个对话框在对用户体验有较高要求的场景下显得非常重要。然而通常用于实现这个功能的库要么过于庞大、要么配置复杂、要么侵入性强,需要对现有的网页进行较多改动,但有一个小众的库却脱颖而出,体积小(gzip后仅4.5kb),效果好。这就是这篇文章要介绍的Prompt-Zepto
继续阅读 使用轻量插件,轻松美化prompt()与alert()

该暴力时必暴力——论alert()及其不知名的两个兄弟

尽管由于工作需要,我不得不写大量的前端代码,但我依旧没有胆量自诩『前端程序员』,也并未花多数精力在钻研前端上。当alert()与其不甚知名的两个兄弟走入我的世界之时,我竟然有点惊喜,因为我又学到了更多的Tricks,又可以“偷懒”了!
继续阅读 该暴力时必暴力——论alert()及其不知名的两个兄弟

iOS中Date对象对于时间字符串的兼容性问题以及解决方法

iOS中的WebView默认为Safari,而大量iOS用户也有使用Safari浏览器进行网页浏览的习惯,然而,Safari浏览器对于某些JavaScript对象的解析与常用的Chrome、Firefox、IE、Edge等有很大不同,稍不注意就容易掉坑里去,导致很多不必要的麻烦。

继续阅读 iOS中Date对象对于时间字符串的兼容性问题以及解决方法