练习题 - 计算器 - 3 - 算法优化

2022-07-23
阅读 2 分钟
679
多数人在解算数表达式计算时,会采用遍历数组优先计算乘除然后以计算结果替换和删除数组元素的的方式,这种方式需要反复遍历数组且需要对数组元素进行删除和插入(On),时间复杂度较高O(n^2),性能较差,请尝试优化到 O(n)。

现代前端原生路由:Navigation API

2022-07-04
阅读 10 分钟
2.9k
Navigation API 是 Chrome 提出的一套导航 API,提供了操作和拦截导航的能力,以及对应用程序的历史导航记录进行访问。这为 window.history 和 window.location 提供了一个更有用的替代品,特别是 SPA 这种模式。目前该 API 只有 Chromium 内核的浏览器才支持。

练习题 - 计算器 - 2 - 模块封装

2022-06-26
阅读 1 分钟
550
在上一题的基础上将计算器的核心逻辑提取出来,封装一个框架无关的计算器模块,并改造你的计算器应用。限制你不可以使用 eval() 函数来执行计算你不可以使用 new Function('...') 函数来执行计算用例在上一题的基础上增加一些边界情况的处理:用户可以看到显示屏显示当前输入的数字或最后一次操作的结果。用户可以看到一...

编程训练计划

2022-06-21
阅读 1 分钟
524
大多时候大家都在做业务开发,然后上网逛逛论坛、看下博客和专栏,很少在业余时间动手训练自己的编码能力 —— 数据结构与算法、设计模式和项目架构等这些在业务开发中比较少接触到的。虽然有些人会专门去刷 LeetCode,但是在缺少项目应用的情况下,很容易忘记。我打算从一些列的应用想法出发,去训练自己的编码能力。

练习题 - 计算器 - 1 - 入门

2022-06-21
阅读 1 分钟
859
每周给自己找一个题目进行编码练习 —— 原文见 [链接]计算器计算器不仅是最有用的工具之一,而且也是了解应用程序中 UI 和事件处理的好方法。在这个问题中,你将创建一个支持整数的基本算术计算的计算器。限制你不可以使用 eval() 函数来执行计算你不可以使用 new Function('...') 函数来执行计算用例用户可以看到显示屏...

eslint-plugin-import Unable to resolve path to module

2022-06-19
阅读 3 分钟
15k
原文 [链接]eslint-plugin-import 用于检查 ES Module 的导入和导出代码,防止文件路径和导入名称拼写错误的问题。安装使用安装 {代码...} 配置:.eslintrc推荐: {代码...} TypeScript: {代码...} ps:需要额外安装 @typescript-eslint/parser 和 eslint-import-resolver-typescript模块解析我们在引入 eslint-plugin-...

Eaxios - 更容易处理响应的网络请求库

2021-02-25
阅读 6 分钟
4.2k
Eaxios 是基于 axios 封装的网络请求库,在保持 API 与 axios 基本一致的情况下,简化服务端响应内容和各种异常情况的处理。开发背景如上图所示,是一次 Ajax 请求可能输出的结果,在前端我们需要根据输出结果给用户不同的提示。请求被取消:忽略网络异常:提示检查是否连接网络请求超时:提示网络慢,请切换网络服务器...

前端常见问题——安卓文本无法垂直居中

2018-11-21
阅读 3 分钟
13.3k
ps:目前在微信等应用都存在该问题,而在最新的移动端 Chrome 浏览器上无该问题(截止本文编写时间,微信客户端的 chrome 版本为 57,chrome 版本为 70)。

前端常见问题——Canvas 图片跨域

2018-09-17
阅读 3 分钟
19.2k
尽管不通过 CORS 就可以在 Canvas 画布中使用图片,但是这会污染画布。一旦画布被污染,你就无法读取其数据。例如,你不能再使用画布的 toBlob(), toDataURL() 或 getImageData() 方法,调用它们会抛出安全错误。这种机制可以避免未经许可拉取远程网站信息而导致的用户隐私泄露。

前端常见问题——一像素显示

2018-08-23
阅读 3 分钟
5.2k
关于一像素显示的问题可以参考 从1px像素问题剖析像素及viewport 和 iPhone 6 屏幕揭秘。 解决方案 如何解决一像素显示问题可以参考博客 7种方法解决移动端Retina屏幕1px边框问题。 方案/优缺点 兼容性 颜色 圆角 总结 0.5px 边框 无法兼容安卓设备、 iOS 8 以下设备 支付 支持 简单,不需要过多代码 使用 border-image ...