js的slice小技巧
寻求报复的人使创痕常新,如果不是这样,那么创痕早就痊愈了。——培根 非常简单,在没有浅拷贝直接赋值时,效果是这样: 123456789let arr = [1,2,3]let arrCopy = arrarrCopy[1] = 4console.log({arr, arrCopy})// 输出// {arr: Array(3), arrCopy: Array(3)}// > arr: (3) [1, 4, 3]// > arrCopy: (3) [1, 4, 3]// > [[Prototype]]: Object 但如果我们使用slice且不传入参数,则是进行浅拷贝 123456789let arr = [1,2,3]let arrCopy = arr.slice()arrCopy[1] = 4console.log({arr, arrCopy})// 输出// {arr: Array(3), arrCopy: Array(3)}// > arr: (3) [1...
js阻止默认事件踩坑
人这种卑鄙的东西,什么都会习惯的。——陀思妥耶夫斯基《罪与罚》 今天遇到一个问题,我想阻止浏览器默认的滚动事件,却阻止不了还一直报错 123456789101112131415161718192021<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <div style="height: 2000px;background:#888"> </div> <script> document.addEventL...
wenyan
唯有具备强烈的合作精神的人,才能生存,并创造文明——泰戈尔 分享一个文言文编程语言 https://github.com/wenyan-lang/wenyan https://wy-lang.org/
如何使用lambda表达式提升开发效率
再也无需前思后想,一切岂非已然过往。——《且听风吟》 高手问答第 305 期 —— 如何使用 lambda 表达式提升开发效率? Java8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。 Lambda表达式https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html 简单来说:就是把我们的函数(方法)作为参数传递、调用等 例子:自定义函数式接口(用jdk自带的函数式接口也可以) 123456789101112131415161718import java.io.Serializable;/** * 可序列化的Functional * * @author VampireAchao */@FunctionalInterfacepublic interface Func<T, R> extends Serializable { /** * 调用 * * @p...
hugegraph
凡心所向,素履所往,生如逆旅,一苇以航。——《尘曲》 分享一个支持超过100+亿数据,高性能和可扩展性的图形数据库(包括OLTP引擎和REST-API和后端) https://github.com/apache/incubator-hugegraph https://hugegraph.apache.org/
vuepress2一次性获取所有frontmatter
上帝是孤独的,恶魔却总在拉帮结伙。——梭罗的《瓦尔登湖》。 接上文: vuepress获取所有页面frontmatter 这次是vuepressv2.0.0-beta.66 首页 | VuePress 核心代码: 12345678910// .vuepress/getAllFrontmatter.smodule.exports = { name: 'get-all-frontmatter', extendsPage: (page, app) => { console.log({ page, app }) console.log(page.data.frontmatter) app.siteData.frontmatter = app.siteData.frontmatter ?? [] app.siteData.frontmatter.push(page.data.frontmatter) },}; 然后配置: 123456789101112131415// ...
vscode-bookmark
我在地面步行,不在云端跳舞。——维特根斯坦 分享一个vscode插件,可以让我们在vscode中打书签 非常方便好用
Delimiter
青春如初春,如朝日,如百卉之萌动,如利刃之新发于硎,人生最宝贵之时期也。青年之于社会,犹新鲜活泼细胞之在身。——陈独秀 分享一下:org.springframework.boot.convert.Delimiter的用法 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950/* * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-...
aspect-ratio
物以稀为贵,情因老更慈。——白居易 分享一个css属性aspect-ratio 大家其实能看出来值2/1就是宽高比 这个属性在width和height只要有任意一个没有配的情况下就会生效,非常方便用于配置一些指定宽高比例的场景
vuepress获取所有页面frontmatter
倘若没有骄傲的思想,人将不成其为人,他自身的弱点会使他蜕化为禽兽。——高尔基 今天实现了vuepress中获取所有页面的frontmatter frontmatter是页面的页头信息,例如: 12345---title: xxxauthor: 作者date: 2023-08-17--- 可以编写一个插件: 12345678910111213module.exports = (options, context) => ({ extendPageData($page) { const { pages } = context; // 获取除首页外的其他所有页面的 frontmatter 数据 const frontmatters = pages .filter(page => page.path !== '/') .map(page => page.frontmatter); // 将 frontmatter 数组传递给首页的 frontmatter ...
