我的2023
bc125fbb5ec126b2dca871bbd909d7251b166229d5f9e98ecbe3dc1212b3432f47d741dacee4a5af1e8ff464b4ec2b23780f59492f03a5d76898d65b53484599335072a3df4369d4d0725570ad2e36ad073384f713d37e19e588a52646eb1ed26fd1f255ed2bf68a567409ec9ac60ff004e1f233309f19c0879cf8037cd8e1e1767ded60b9d6b8c4b3040081de382afd89ae505805ba138515821dbb430041ab8599fad59e46bbfeb561d5ac5896f25401d874f471616a2221f0cd364048636569f1ba75596645417da3af814cfe0d9ce28047e420812b3bd0e043d450fbe2f208e6554fc315bf4d0f9cdaff812632ba68a24cf5aaa10996b ...
二月的日常碎片
bc125fbb5ec126b2dca871bbd909d72520b18df169997075c520c6ec904e6d829704de3ef63c37921c758e3bdd786ae552da15914c98247c9ec2429bf44cd4f05cf90ff151341b555be73a1a13fcb777a68b36e9802f8083b03731c23fce6dd53c5fb556c838ad34d3fe08da72459d15958bb299e07266f5d3de58fae58413eb15a4574db0655451f9035f08b7e0ddc086aa04f3317aa668fa1054dfb22ed330bcd3037f043c4ab20301d023c665019fb372b4704181c6bf927592ab222c47edf6802e45ebdb5e710975d570d66553e83c4eb56c6977d7d0de1ea29cc770bc0db72fbbb9349d620d533eb48e347dfb5de368501d492b2e64b ...
Vue笔记
Vue双向数据绑定的原理Vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤:
需要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter,当给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化
compile解析模版指令,将模版中的变量替换成数据,然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图
Watcher订阅者是Observer和Compile之间通信的桥梁,在自身实例化时往属性订阅器里面添加自己,自身必须有一个update()方法,待属性变动dep.notice()通知时,能调用自身的update()方法,并触发Compile中绑定的回调。
MVVM作为数据绑定的入口,整合Observer、Compile和Watcher三者,通过Observer来监听自己的model数据变化,通过Co ...
JS笔记
JavaScript的数据类型有哪些JavaScript共有八大数据类型,分别是:Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。
数据类型检测的方法有哪些
typeof
12345678console.log(typeof 1); // numberconsole.log(typeof true); // booleanconsole.log(typeof 'str'); // stringconsole.log(typeof function(){}); // functionconsole.log(typeof undefined); // undefinedconsole.log(typeof []); // objectconsole.log(typeof {}); // objectconsole.log(ty ...
Hexo + Butterfly 石蒜模拟器
效果预览
步骤1、在BlogRoot/node_modules/hexo-theme-butterfly/layout/includes/layout.pug文件最后加上如下代码。123456#sakana-widget(style='position:fixed;bottom:10px;right:10px;')script. function initSakanaWidget() { new SakanaWidget().mount('#sakana-widget'); }script(async='' onload='initSakanaWidget()' src='https://cdjsdelivr.net/npm/sakana-widget@2.2.1/lib/sakana.min.js')修改bottom和right的值可以自定义插件的位置2、最后重新编译下就可以看到效果1hexo cl; hexo g; hexo s
GitHub地址最后附上插件 ...
CSS笔记
flexflex-grow flex-shrink flex-basis
flex-grow:定义放大比例,默认为0,规定项目相对于其他灵活的项目进行扩展的量
flex-shrink: 定义了项目的缩小比例,仅在宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值,默认为1
flex-basis:给上面两个属性分配多余空间之前, 计算项目是否有多余空间, 默认值为 auto, 即项目本身的大小
position
position:static 默认值,没有定位,元素出现在正常的流中;
position:fixed 固定定位,是相对于浏览器窗口来进行定位;
position:relative 相对定位,相对于其本身正常位置来进行定位,它原本所占的空间仍保留;
position:absolute 绝对定位,相对于定位方式不是static的第一个父元素进行定位(可以是absolute/relative/fixed等)往上寻找参照元素,一直到根元素为止,即body。
隐藏元素的方法有哪些
display: none:渲染树不会包含该渲染对象,不会在页面中占 ...
HTML笔记
常用的浏览器内核
IE:trident内核
Firefox:gecko内核
Safari:webkit内核
Opera:以前是presto内核,现已改用Google Chrome的Blink内核
Chrome:Blink
DOCTYPEDoctype是HTML5的文档声明,它可以告诉浏览器,使用哪一个HTML版本标准解析文档。浏览器渲染有两种模式(可通过document.compatMode获取)
CSS1Compat:标准模式,默认模式,浏览器使用W3C的标准解析渲染页面。
BackCompat:怪异模式,浏览器将开启最大兼容模式来解析网页,这样不仅会降低解析效率,还会在解析过程中产生难以预知的bug。
html语义化语义化是指根据内容的结构化,选择合适的标签(用正确的标签做正确的事)优点:
有利于SEO
可读性强,有利于开发和维护
常见的语义化标签1234567<header></header> 头部<nav></nav> 导航栏<section></section> 区块(有语义化的div)& ...
测试
bc125fbb5ec126b2dca871bbd909d7253444f7bacf6fc0f985da7a317ee13751948705d1ef3c8146167c6eae7ce15208775ebfe446c1754d435b5706eb4be91b
需要密码才能看哦.
2023
当我真正开始爱自己,我睡得越来越早,也越来越喜欢锻炼。我不再纠结和焦虑,变得自信满满,去追求有意义的人和事,并为之燃烧自己的热情。我发现,人生才真正开始。
新的一年,好好努力!








