自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 解决 iOS 端小程序「saveVideoToPhotosAlbum:fail invalid video」问题

修复「saveVideoToPhotosAlbum:fail invalid video」

2024-05-31 14:01:02 790 1

原创 解决 param image not exist 与 image format error(百度 AI)

注意,此文的 AI,是指识别图文、人脸的 AI 功能,而不是文心一言那种对话形 AI。最近在尝试使用百度 AI 功能,很有趣是不假了,但也有很多坑,特此记录一下。

2023-07-14 22:19:42 34734

原创 函数声明与函数表达式

对比函数声明与函数表达式,了解一些其中的差异

2022-09-14 19:30:49 358 1

原创 数组中的 empty

数组中的 empty 究竟是什么?

2022-09-11 20:49:06 1225 1

原创 奇妙的函数【JavaScript】

探究一些 JavaScript 函数似真似假的特点。

2022-08-30 21:51:40 285

原创 变量声明风格

浅谈两种常见的变量声明风格

2022-07-24 21:22:54 128

原创 Lambda 自递归调用

JS 匿名函数怪谈

2022-06-19 20:22:21 1190

原创 二义性调用(Ambiguous Call)

对于二义性调用的一些解释

2022-06-12 20:24:05 1567 1

原创 《重构(第二版)》阅读笔记(三)

文章目录坏代码的味道神秘的命名重复的代码过长的函数过长的参数列表全局数据可变数据霰弹式修改夸夸其谈通用性临时字段注释坏代码的味道如何找到对应的坏代码,也是一种手段对于坏代码,事实上没有一条名确的准则,只有相对的习惯,有人可以容忍,而有人不能接受,也就出现了,一片代码,在每个人眼中都是不同的作者在此章给出了一些判断准则,是否愿意接受,需要看个人习惯神秘的命名如其所言,一个好的命名永远都是重要的,别搞那些幺蛾子这不不久前看到一个段子女儿出生了,不知道起什么名字,于是给她起名为女孩如果真

2022-04-10 16:07:58 337

原创 《重构(第二版)》阅读笔记(二)

重构原则

2022-03-28 14:12:17 188

原创 leetcode-三数之和

该篇是个人对于 leetcode 15. 三数之和 解题思路

2022-03-20 07:21:24 109

原创 《重构(第二版)》阅读笔记(一)

阅读《重构(第二版)》时随手写下的一些玩意

2022-03-08 15:02:06 258

原创 编程命名规范

编程命名规范

2022-03-01 15:12:37 121

原创 《你不知道的JavaScript(上卷)》阅读随笔

早期看书时随笔写下的一些事物,🐟仅供娱乐,切勿认真。读后感其内容并不怎么需要 ES6,还会说明 var 存在的一些问题。非常好的说明了作用域与闭包的存在,当然真实的情况是,初期容易被闭包给吓住,也不知道为什么要通过作用域保护一个变量。质量很高,但是初期不要看,因为看了或许会用不着,而作用域是例外,因为一直都在使用。作用域与闭包作用域var a = 1 这条语句,看似简单的背后,实则分为两步:先看一半,var a,查看当前作用域下是否存在 a 这个变量,无则声明,有则替换。a = .

2022-02-25 14:12:26 432

原创 Rust - Option

不存在的 nullnull 虽然存在多种主流语言当中,但是从一些方面上来说,它是存在问题的,只是已经成为了一种传统形式,无法改变了。Tony Hoare,null 的发明者,在他 2009 年的演讲“Null References: The Billion Dollar Mistake”中曾经说到:我称之为我十亿美元的错误。当时,我在为一个面向对象语言设计第一个综合性的面向引用的类型系统。我的目标是通过编译器的自动检查来保证所有引用的使用都应该是绝对安全的。不过我未能抵抗住引入一个空引用的诱惑,仅仅

2022-02-25 13:43:25 591

原创 Rust - 函数

基础概念使用 fn 关键字声明函数,函数参数与返回值类型需要手动写好fn add_two(num: i32) -> i32 { num + 2}当函数最后一句表达式没有写分号时,则将其作为函数结果返回,也可以显式写出 returnfn add_two(num: i32) -> i32 { num + 2}fn add_two(num: i32) -> i32 { return num + 2;}可以在函数当中声明函数,并能够在声明之前使用,

2022-02-25 13:15:51 380

原创 ES6 模块使用问题解析(续)

前言上一篇发出之后,发现还有些问题没有说完,于是出了该续篇。怪诞的 export之前谈到过,这种没有 key 值没有使用默认的导出的无效的:const text = "index.js"// errorexport text转换一下,便成了这样:export "index.js"可是这么写,又行了:export const text = "index.js"在这种情况下,变量名就当成了 key,没有转换的那么彻底。也是有点摸不着头脑,这两者的差别有多大呢,好歹说,我是取了一个

2021-12-22 20:28:38 652 1

原创 ES6 模块使用问题解析

对于 ES6 模块使用的迷惑之处,做出解释。

2021-12-15 22:25:41 1080

原创 如何实现网页主题切换

如何在界面上实现主题效果,主要是网页白天与黑夜两种配色方案之间切换我记录了几种方式CSS 变量可以使用,但是给我的体验并不太好,值会呈现在标签 style 属性当中body { --size: 100px; --time: 500ms; --color1: #fff; --color2: #000; margin: 0; width: 100vw; height: 100vh; background: var(--color1); transition: back

2021-12-07 12:35:39 923

原创 浅谈 UI 组件库

我在某天尝试了几款不同的组件库之后,写下了一些想法主流与小众主流 UI 组件库,使用人群多,维护与开发稳定。如 Bootstrap、Element、Antd。通常在正常学习过程当中,就能知道它们存在。并不是说没有其他组件库了,而是先学习一种最常用的后续我会将 UI 组件库 简称为 组件库能够应对日常开发,再考虑其他个性化。且主流组件库通常会影响后续出现的组件库,成了一个大众的模板,在 API 上便是大同小异或者说,这几乎成了 UI 组件库的通用模板个人组件库,比如 Naive UI。

2021-11-28 08:14:35 851

原创 generator(生成器)

概述生成器是一种特殊的函数标准函数运行时,最多产生一个值生成器函数可能会在运行中暂停,每次运行都会产生一个值当前使用较少,因为 async 与 await 更简洁声明作为一个特殊的函数,同样是通过 function 来声明以函数声明为基础,**在 function 关键字后面,函数名之前加上 * **,这就声明了一个生成器函数函数表达式没有函数名,则定位在参数小括号之前* 只要存在即可,并没有严格的格式要求,可以靠左、靠右,或作为分割符,或左右存在空格而箭头函数没有 functi

2021-11-20 21:49:06 996

原创 var的缺陷

若是论正经的变量声明关键词,不抬杠那些 function 、class 等,在 ES6 之后,存在三个constletvar推荐程度从上至下var 作为一名老牌选手,陪着 JavaScript 出生到现在,但是它是存在问题的,当然在 ES6 之前,那是没得选,毕竟是声明变量唯一的存在触目可及的一些问题提升全局属性重复声明没有块级作用域提升使用 var 声明时,会将声明语句提升至当前作用域的顶部,这导致可以提前使用变量,而不会报错,只是值是 undefined这怎么说,

2021-11-08 12:03:01 891

原创 iterator(迭代器)

iterator(迭代器)for-ofES6当中新增入了一种循环方式,for-of,与for-i、for-in相比,更加简洁。可以直接拿到value,而不是拿到key,再去获取value但是,普通对象并不能使用for of进行遍历,哪怕是一个伪数组对象// 真数组const arr = [1, 3, 5] // 伪数组const obj = { 0: 1, 1: 3, 2: 5, length: 3}// 1 3 5for (const v of arr)

2021-10-28 14:16:11 283

原创 自定义Hook

定义自定义hook是一个函数,函数内部调用了其他hook函数,且以use开头命名,从而可称为自定义hook其主要,是让代码拥有更好的重用性,依旧是函数式思维基础使用如计数器import React, { useState } from "react"export default function App() { const [count, setCount] = useState(0) return ( <div> <p>当前数值:{cou

2021-10-18 08:03:19 828

原创 Promise(下)

对于实例方法then()和catch(),需要清楚的是,会返回一个新的Promise对象同一个Promise对象,可以绑定多个回调,但链式使用then()时,并不是一直操作一个对象,而是不断返回的新对象const p = new Promise((resolve,reject) => { resolve(10) }) p.then(value => { console.log("一号回调") console.log(value)// 10 return

2021-09-27 06:34:09 49

原创 Promise(上)

Promise, ES6核心概念之一,异步编程终极解决方案它的出现,解决了回调地狱,让代码层级更清晰、链式调用、配合async与await打出一套组合拳…开篇读取文件数据时,常规的做法const fs = require("fs") fs.readFile("./doc/text.log", "utf-8", (err, data) => { if (err) { console.log(err) console.log("读取失败") } el

2021-09-21 06:43:22 98

原创 react-hook(2)

refs & useRef()在组件当中要选取某一元素,并不会使用文档搜索形式去获取,而是特殊属性ref,不适合滥用,属于能不用就不用的属性不推荐搜索获取的原因在于获取速度。在虚拟DOM生成时,根据标记情况就能直接获取,而无需去搜寻整个DOM树字符串形式早期使用的是字符串标记,非常简单快捷。在元素上设置唯一字段,根据对应的字段,通过this.refs对象访问元素目前已进入淘汰阶段,当前使用时会提供警告事实上,当前访问的refs属性,也已经画上了删除线import React

2021-09-19 06:40:16 212

原创 react-hook

第一个能使用hook的react版本是16.8什么算是好的更新,那就是新增了东西,还不会影响之前的内容,让人完全可选对于hook的加入,让函数组件更灵活,几乎到了可以顶替class组件的底部,也让那些不习惯class组件的人,有了一个选择在使用上来说,class组件需要注意更多,如this指向、render()中为什么不能写定时器等通过经典计数器的例子来观察两者的复杂度class组件//App.tsximport React, {Component} from 'react'expo

2021-09-08 11:16:34 100

原创 jQuery源码阅读笔记-动画(5)

stop(),暂停匹配元素的动画观察函数传参的表现无参状态,会将当前正在执行的动画终止,并启动当前动画之后的动画。若队列为空,则将样式保持在暂停时刻第一参数,当传入true时,直接清空队列,让其完全停止第二参数,当传入true时,会直接完成当前动画,跳过预设时间默认情况都是false此处的stop()只涉及动画先完成基本的无参,动画暂停实现动画使用的是Animation,对于暂停,它也可以对应的方法pause(),不过在此则使用另一个,cancel(),将动画中止在暂停之后无参

2021-08-28 13:54:50 61

原创 jQuery源码阅读笔记-动画(4)

前言在此先对前几篇所写的代码做一下整理,回头看还是挺糟糕的,此篇做一个梳理,也可以说是重写filterAnimateArgs()内部自用,处理动画函数的参数,一个抽离的函数/** * 处理参数 * @param prop 动画目标值 * @param speed 动画时间 * @param easing 动画运动曲线 * @param callback 回调函数 * @returns {{prop, callback, easing: string,

2021-08-18 14:08:41 78

原创 jQuery源码阅读笔记-动画(3)

对于动画暂停的问题,需要与其他函数结合起来看,就看三个函数效果hide隐藏show显示toggle根据当前元素状态,执行hide | show动画表现/*结束时只添加display: none属性来达到隐藏的效果*/.hide{ overflow: hidden; opacity: 0; height: 0; width: 0; margin: 0; padding: 0;}/*高、宽、边距非固定,而需要根据消失前的样式来恢复*/

2021-08-07 16:15:20 82

原创 jQuery源码阅读笔记-动画(2)

出现了一个问题,CSS属性并没有固定,什么固定?在界面中显示没有问题,但是如果在开发者工具中查看,只会发现,所展示的CSS属性与呈现出来的完全对不上,这就是CSS动画在作祟,显示的状态并没有和工具中看到的不一致。并不会像定时器那样,能观察到style在递增或者递减对于这方面,需要自行在动画结束后,手动将结束的属性添加上去目前的属性没有显示并非是好事,如果脱离动画的时候,使用css()检查属性值状态,会返回当前的所呈现的值,但是在F12中调试,不会起到任何效果没有反应的只会是在执行animate()函

2021-08-07 16:05:05 89

原创 jQuery源码阅读笔记-动画(1)

Animation对象作为一个对象,可以通过new Animation()来获取而实例化时,可以接收一个KeyFrameEffect对象//实例化Animation对象const animation = new Animation(new KeyframeEffect( document.querySelector("div"), { background: 'red', }, 5000,));对于KeyFrameEffect对象,接受三个参数目标 – 唯一,执行动

2021-08-07 15:55:37 127

原创 jQuery源码阅读笔记(11)

jQuery动画除了事件之外,最有趣的便是动画效果了,简单粗暴的动画是很吸引人,甚至还有自定义动画在动画的基础上,需要先完成CSS()方法css(key[, value])概述:返回第一个匹配元素对应的属性值,或者为所有匹配元素设置相应样式解析:对于一个参数如果是字符串,返回第一个匹配元素对应的属性值如果是一个普通对象,则拆解键值对,按两个参数执行如果是一个数组,遍历元素按字符串处理,返回一个新的对象,存储了对应的键值对比较抽象,此处是将数组的元素作为对象的键,

2021-07-05 20:45:54 69

原创 jQuery源码阅读笔记(10)

事件处理后续前文谈及了实现on()函数的实现,对当中的one参数和off()函数填坑one参数用于区分one()和on(),one()函数只是多一个特点,事件函数只触发一次,触发后便移除jquery.fn.extend({ on(types, selector, data, fn) { return on(this, types, selector, data, fn); }, one(types, selector, data, fn) { return on(this,

2021-06-28 12:08:28 109

原创 jQuery源码阅读笔记(9)

属性节点与属性属性节点只设置在DOM元素上,而属性则是对象通用,有四个方法attr(name, value) – 查询 | 替换 属性节点值removeAttr(name) – 移除指定属性节点prop(name, value) – 查询 | 替换 属性值removeProp(name) – 移除指定属性jQuery在这点上有点坏坏的,如果给一个DOM元素,使用prop()添加的属性名是class时,它会自动替换成classNameattr(name[, value])概述:查询

2021-06-19 16:26:34 71

原创 jQuery源码阅读笔记(8)

CSS类类名操作提供了四种方式hasClass(className) – 检查是否有一个类addClass(className|fn) – 添加类removeClass(className|fn) – 移除类toggleClass(className|fn[,sw]) – 切换类对于类名的处理,其实就是正则的玩法了不过这里并不考虑兼容性问题,有更简便的对象属性,classList有这么几个的方法contains(className)add(className)

2021-06-08 10:15:46 75

原创 jQuery源码阅读笔记(7)

文档插入再看一组逻辑一致的方法,按一样的套路解决append(content|fn) – 将参数添加至匹配元素尾部prepend(content|fn) – 将参数添加至匹配元素头部after(content|fn) – 将参数添加至匹配元素后方before(content|fn) – 将参数添加至匹配元素前方通用逻辑概述:将参数插入至匹配元素相应的位置解析:与前面的不同,这边参数接收的尺度要宽一些对于字符串,不会再当作选择器处理,直接以HTML形式插入对于数字,当作字符串处理

2021-06-08 10:14:23 92

原创 jQuery源码阅读笔记(6)

第二参数补充通过这一点上才发现,在实例对象上漏掉了两个属性,因用于测试和阅读的主要是3.6.0版本,未曾想在1.x.x版本里,$对象还有两个属性,context和sekector这些属性已经弃用的了,那么自己也没必要再加上,不过对于元素的选择上,还是需要弥补上,毕竟在CSS的角度,是不合格的<!--对于 body>div div>div,只能选择到一个--><body> <div> <div>

2021-06-08 10:12:18 146

原创 this(1)

前言:个人随笔,每个JavaScript开发者都需要看看小黄书上册什么是this?需要清楚的是,this是函数内部对象虽然在全局当中也可以使用,但也不会有人把this当成window来使用吧//常规window.onload = function () {}//??this.onload = function () {}//要这样写,那就得掀摊子了onload = function () {}此处只谈论浏览器环境回到函数内部,函数内this又是指向谁呢基本定义,谁调用的这个.

2021-05-29 09:57:43 141

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除