CommonJS和ES的模块化标准分析
前言CJS和ESM是两种常见的模块化标准,本文首先从性质,语法差异,加载机制,对动态导入的支持,导出值的类型,循环依赖的处理,以及兼容性7个方面分析了CJS和ESM的异同,然后得出了CJS和ESM互操作的最佳实践的建议,最后补充了ESM中静态import的异步和同步的理解. 一、 性质 特性 CommonJS ES Modules 性质 社区规范 官方规范 CJS由 Mozilla 工程师 Kevin Dangoor 于 2009 年发起,最初为解决浏览器外(如服务端)的 JS 模块化问题而提出的社区标准. ESM是由ECMAScript 2015 (ES6) 正式纳入语言标准(ECMA-262). 二、语法差异1. 导出语法 操作 CJS ESM 默认导出 module.exports = value export default value 命名导出 exports.name = value export const name = value 混合导出 module.exports = { name, default...
面经集合
2025-02-20 腾讯微信小店实习生面试现在刚面完记录一下. 没有问八股,上来直接根据简历进行拷打. 1. Flutter这项技术有什么优缺点我回答了: 优点: 一次开发,多端运行 性能相对Uniapp,React Native来说较好. 缺点: 开发体验较差,嵌套地狱 GPT总结: Flutter 作为 Google 推出的跨平台开发框架,近年来备受关注。以下从开发效率、性能、生态、维护成本、学习曲线、应用场景等多个角度分析其优缺点: 一、优点分析 跨平台能力 单代码库覆盖多平台:通过一套 Dart 代码可同时编译为 iOS、Android、Web、Windows/macOS/Linux 桌面端甚至嵌入式设备应用,大幅减少开发成本。 一致性 UI:自绘引擎(Skia)直接渲染控件,避免平台原生组件差异导致的 UI 不一致问题,例如 Android 和 iOS 的按钮样式差异。 高性能体验 接近原生性能:通过 AOT(Ahead-of-Time)编译生成原生机器码,性能优于基于 JavaScript 的框架(如 React Native)。 60/120...
原型与原型链
前置知识 所有对象都是通过new 函数创建的(除了Function这个构造函数对象) 所有的函数也是对象 函数中可以有属性 所有对象都是引用类型 原型对象所有函数都有一个属性: prototype称之为函数原型 默认情况下,prototype是一个普通的Object对象 默认情况下,prototype中有一个constructor,他也是一个对象,它指向构造函数本身 隐式原型__proto__所有的对象都有一个属性__proto__,称之为隐式原型. 默认情况下,隐式原型指向创建该对象的的构造函数的原型(prototype) 当访问一个对象的成员时: 看该对象自身是否拥有该成员,如果有,直接使用 看该对象的隐式原型是否拥有该成员,如果有,直接使用 在原型链中依次查找 猴子补丁: 在函数原型中加入成员,以增强对象作用,但会导致原型污染,使用需要谨慎. 原型链 Function这个构造函数的隐式原型就是他的原型对象(Function.__proto__ === Function.prototype)
Vue3官网学习
开始简介什么是Vue?Vue是一款用于构建用户界面的JavaScript框架.它基于标准的HTML,CSS,和JavaScript构建,并提供了一套声明式的,组件化的编程模型,帮助你高效地开发用户界面.无论是简单还是复杂的界面,Vue都可以胜任. 下面是一个最基本的示例: 12345678910111213141516<div id="app"> <button @click="count++"> Count is : {{ count }} </button> </div><script> import { createApp, ref } from 'vue' createApp({ setup() { return { count: ref(0) } } ...
前端八股
HTMLCSSJavaScriptTypeScript1. JavaScript中有哪些数据类型?TypeScript比其多了什么,简单介绍一下各种类型.JavaScript中总共有8中数据类型,包括7个 框架网络工程化1. 简述一下webpack原理浏览器1. 请讲述一下浏览器的渲染原理Node.js数据结构和算法操作系统
面试准备25-2-19
自我介绍面试官你好,我叫马嘉路,目前电子科技大学大三在读,学习物联网工程和金融学双学位。此前在四川品忆科技有限公司有过一段为期两个月的实习,参与了基于Flutter的“力喵软件”项目。目前,我正在独立开发“学习岛”项目,负责前端后端和数据库全栈开发,涵盖了小程序,商家管理后台和Node服务器等部分。我的主要技术栈是Vue3,对项目部署有一定的了解。 前端开发技术 你提到你熟练掌握Vue3全家桶,能否详细讲一下你在Vue3项目中使用的技术和设计模式? Vue3: 核心框架,负责构建用户界面(UI)和管理应用状态 Vue Router: 路由管理工具,用于处理不同页面之间导航 Pinia: 状态管理库 Vite: 项目构建工具 Vue Test Utils:...
TypeScript
简介TypeScript由微软开发,是基于JavaScript的一个扩展语言. TypeScript包含了JavaScript的所有内容,即TypeScript是JavaScript的超集 TypeScript增加了: 静态类型检查,接口,泛型等很多现代开发特性,因此更加适合大型项目的开发. TypeScript需要编译为JavaScript,然后才能在浏览器或其他JavaScript运行环境运行. 为何需要TypeScript JavaScript当年诞生的时候定位是浏览器的脚本语言,用于在网页中嵌入一些简单的逻辑 JavaScript的困扰 不清不楚的数据类型 12let welcome = 'hello'welcome() // TypeError: welcome is not a function 有漏洞的逻辑 1234567const str = Date.now() % 2 ? '奇数' : '偶数'if (str !== '奇数') { ...
服务器部署
网站运行机制名词解释域名 www.baidu.com www.taobao.com www.qq.com 域名俗称网址,是由一串用点分隔的名字组成,用于标识互联网上的计算机. 原本用于标识互联网上计算机使用的是IP地址,但是由于IP地址不便于记忆,所以人们设计出比较容易记忆的域名,然后,通过DNS服务器将域名和IP地址关联,这样人们便可以通过记忆域名直接访问到对应的计算机. DNS服务器 DNS(Domain Name System),可以理解为互联网上的一项服务,他可以将域名转换为其对应的IP地址 可以将其理解为字典,字典中存储的就是域名和IP地址一一对应的键值对. 本地host文件 windows: C:\windows\system32\drivers\etc\hosts mac:...
操作系统
操作系统的概念,功能操作系统的概念(定义)操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口环境;它是计算机中最基本的系统软件 提供的功能 处理机(CPU)管理 存储器(内存)管理 文件管理 设备管理 目标向上层提供方便易用的方式 GUI 联机命令接口(交互式命令接口) 脱机命令接口(批处理命令接口),文件后缀为.bat 程序接口: 可以在程序中进行系统调用来使用程序接口.普通用户不能直接使用程序接口,只能通过程序代码间接调用 系统调用=广义指令 操作系统的特征并发并发:...
Vue3.js
Vue3的重大变化 12345678910111213141516import { ref } from "vue";export default { setup() { // console.log('所有生命周期钩子函数之前调用') // console.log(this); this -> undefined let count = ref(0); const increase = () => { // 不具有响应式 count.value++; }; return { count, increase } ...


