首页
niubg-🍪
取消

自定义一个useLocation

自定义useLocation 模拟获取一个地理位置 import {reactive, onMounted, toRefs } from 'vue'; // 模拟异步获取 function getLocation(fail) { debugger return new Promise(resolve => { setTimeout(() =>...

JavaScript设计模式

工厂模式 工厂函数是一种设计模式,它是一个返回对象或函数的函数。其目的是用于创建和初始化对象,使得代码更具可读性、可维护性和可扩展性。 在 JavaScript 中,工厂函数通常用于创建对象,允许你在创建对象的过程中执行一些初始化逻辑。这样可以封装对象的创建细节,同时提供一个清晰的接口。 一个简单的工厂函数的示例: function createPerson(name, age) {...

vue自定义v-model

自定义v-model input输入框自定义v-model // Input.vue <template> <input type="text" :value="modelValue" @input="change1"> </template> <script setup> defineProps(['model...

JavaScript作用域

什么是作用域?这是老生常谈的问题了,作用域分为: 全局作用域 函数作用域 块级作用域(es6) this指针 const obj = { f1() { const fn = () => { console.log('this1', this) } fn() fn.call(...

WeakMap和weakSet

WeakMap 和 WeakSet 是 ES6 中引入的两个新数据结构,它们可以用来存储弱引用。弱引用是指不会阻止对象被垃圾回收的引用。 WeakMap 和 WeakSet 与 Map 和 Set 类似,但它们的行为略有不同。Map 和 Set 中的键和值都是强引用,这意味着它们不会被垃圾回收。如果一个 Map 或 Set 中的键或值被垃圾回收,那么整个 ...

了解WebAssembly

WebAssembly WebAssembly 是一种可以在现代网络浏览器中运行的新的编码方式。它有以下特点: 低级的类汇编语言:它具有紧凑的二进制格式,可以接近原生的性能运行。 可移植的编译目标:它为诸如 C / C ++等语言提供一个编译目标,以便它们可以在 Web 上运行。 与 JavaScript 共存:它允许 WebAssembly 模块和 JavaScript 代...

JavaScript发布订阅事件

发布订阅模式 发布订阅模式(Pub/Sub)是一种事件驱动通信模式,它允许一个组件发布事件,而其他组件可以订阅这些事件。发布订阅模式在许多应用程序中都很有用,例如在需要在多个组件之间共享数据的情况下,自定义事件监听场景等。 ES5-发布订阅 function PubSub() { this.eventListeners = {}; } PubSub.prototype.o...

JavaScript常见算法题

二分查找 二分查找是一种非常高效的查找算法,前提是数组必须是有序的。下面是一个简单二分查找算法: function binarySearch(arr, target) { let left = 0; let right = arr.length - 1; while (left <= right) { let mid = Math.floor((lef...