0%

关于 Web 应用性能优化,有一点是毫无疑问的:「页面加载越久,用户体验就越差」。Web 应用性能优化的关键之处就在于:减少页面初载时所需加载资源的「数量」和「体积」

阅读全文 »

在 Linux 环境通过 npm 全局安装 pm2 后,运行 pm2 命令却显示没有找到该命令:-bash: pm2: command not found。上网查找资料发现,这是因为没有创建软连接导致的。

阅读全文 »

虽然响应式页面能够做到样式随着屏幕的变化保持一致,但对于移动端和 PC 端两个截然不同的体系来说,更好的用户体验无疑是为两者分别准备一套代码。也就是说,如果一个网站做了这样的设备适配,那么用户在移动端访问到的就是移动端的页面,在 PC 端访问到的就是 PC 端的页面。我们可以在 Nginx 服务器的 conf.d 文件中进行配置,以根据设备类型的不同来做页面的跳转。

阅读全文 »

在 nginx 服务器上准备调试 Nuxt 项目时,打开浏览器却发生了下图的情形。可以看到,样式发生明显错乱,图片资源也没有加载出来。而我在本地代码调试时,显示效果是正常的。在反复确认本地代码和服务端上的代码并无二致后,查看报错信息发现引入的 css 文件、js 文件以及图片资源都没有加载出来。

阅读全文 »

ES6 Module 和 CommonJS 模块的区别:

  • CommonJS 模块是同步加载的,而 ES6 模块是异步加载的。
  • CommonJS 模块是运行时加载,而 ES6 模块是编译时加载。
  • CommonJS 模块输出的是一个值的拷贝,而 ES6 模块输出的是一个值的引用。

require 用于读取并执行 js 文件,并返回该模块的 exports 对象,若无指定模块,会报错。Node 使用 CommonJS 模块规范,CommonJS 规范加载模块是同步的,只有加载完成,才能执行后续操作。

import 用于引入外部模块,其他脚本等的函数,对象或者基本类型。import 属于 ES6 的命令,它和 require 不一样,它会生成外部模块的引用而不是加载模块,等到真正使用到该模块的时候才会去加载模块中的值。

阅读全文 »

前端开发已经模块化,它改进了代码库的封装和结构。打包工具已经成为了一个项目必不可少的部分,如今这儿有几种可能的选择,例如 webpack,grunt,gulp 等。webpack 因为他的功能和扩展性在过去的几年中,受到非常大的欢迎。

image-20210325155353232

不像大多数的模块打包机,webpack 将项目当作一个整体,通过一个给定的的主文件,从这个文件开始找到项目的所有依赖文件,使用 loaders 处理它们,最后打包成一个或多个浏览器可识别的 js 文件。

阅读全文 »

在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。

阅读全文 »

AJAX

(一)AJAX 概述

AJAX(Asynchronous JavaScript And XML,异步的 JavaScript 和 XML),是一种实现无页面刷新获取服务器数据的混合技术。它能够使浏览器在不刷新页面的情况下获取服务器响应,这将大大提升互联网用户的使用体验,同时,由于 AJAX 请求获取的是数据而不是 HTML 文档,因此它也节省了网络带宽,让互联网用户的网络冲浪体验变得更加顺畅。

阅读全文 »

typeof 转换类型

typeof 转换类型结果
{}object
[]object
nullobject
undefinedundefined
NaNnumber
0number
trueboolean
‘ ‘string

number 转换类型

Number 转换结果
Number({})NaN
Number([])0
Number(‘’)0
Number(null)0
Number(undefined)NaN
Number(NaN)NaN
阅读全文 »

一、JavaScript 是动态弱类型语言

1. 弱类型语言

JavaScript 是一门弱类型语言。语言类型的强弱,业界并没有提供权威的概念进行区分。但大体而言,强类型语言会有更严格的类型约束,不允许已声明类型的变量出现隐式的类型转换。而弱类型语言几乎不受限制,这种变量类型的不确定性可能会给代码带来隐患。

阅读全文 »