链表练习题(学习笔记)
删除1. 真题描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有结点组成的。 示例 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061const a = { val: 1, next: { val: 2, next: { val: 4, next: null } }}const b = { val: 1, next: { val: 3, next: { val: 4, next: null } }}// 链表构造函数function Lis ...
记录在Linux中安装MongoDB
下载123456789cd /usr/local/mkdir mongodbcd mongodb/wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.7.tgz 下载 tar -zxvf mongodb-linux-x86_64-4.0.7.tgz 解压 新建文件夹放数据库数据和log1234cd mongodb-linux-x86_64-4.0.7/binmkdir -p logsmkdir -p data/db 授权12chmod 777 logschmod 777 data 新建mongodb.conf创建一个mongodb.conf 直接 vim mongodb.conf 123456789101112dbpath = /usr/local/mongodb/mongodb-linux-x86_64-4.0.7/bin/data/db #数据文件logpath =/usr/local/mongodb/mongodb-linux-x86_64-4.0.7/bin/logs/mongodb ...
pdfjs-dist + react 使用记录
前言 本片文章仅为笔记,不做具体讲解。文档地址:https://github.com/mozilla/pdf.js参考例子: pdf.js/examples/mobile-viewer/ 效果 JS1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691 ...
手写Promise,代码记录
规范 1.1 “promise”是一个具有then方法的对象或函数,其行为符合此规范。也就是说Promise是一个对象或者函数。 1.2 “thenable”是一个定义then方法的对象或函数,说句人话也就是这个对象必须要拥有then方法。 1.3 “value”是任何合法的JavaScript值(包括undefined、或者promise)。 1.4 promise中的异常需要使用throw语句抛出。 1.5 当promise失败的时候需要给出失败的原因。 状态 1.1 promise必须要拥有三个状态: pending, fulfilled 和 rejected。 1.2 当promise的状态是pending时,他可以变为成功fulfilled或者失败rejected。 1.3 如果promise是成功状态,则他不能转换成任何状态,而且需要一个成功的值,并且这个值不能被改变。 1.4 如果promise是失败状态,则他不能转换成任何状态,而且需要一个失败的原因,并且这个值不能被改变。 then方法说明 1.1 一个promise必须要有一个then方法,而且可以访问promise ...
EventLoop事件循环练习题
前言12345678910111213setTimeout(() => { console.log('timeout');}, 0);Promise.resolve().then(data => { console.log('then');});console.log('start');// start => then => timeout 12345678910111213141516setTimeout(() => { console.log('timeout1'); Promise.resolve().then(data => { console.log('then1'); });}, 0);Promise.resolve().then(data => { console.log('then ...
vue-cli2 / vue-cli3 / vite+vue3.0 打包环境区分
前言刚好最近把 vue-cli2 / vue-cli3 / vite+vue3.0 的环境区分都来了一遍,特此记录。下文的方法都是自己使用亲测有效的,不过也不是唯一的方法。 vue-cli2vue-cli2生成的项目目录下有build、config这两个目录,项目的webpack配置和运行环境的区分就是在这两个文件夹下去处理的; 1.下载cross-env1npm install cross-env --save-dev 2.修改pageage.json中script 增加build:test、build:uat 12345678"scripts": { ... "build": "node build/build.js", "build:test": "cross-env NODE_ENV=production ENV_CONFIG=test node build/build.js", "build:uat": "cross-env ...
vue3.0 + less/sass
vue3.0项目增加less/sass 先安装less less-loader / scss scss-loader / style-loader 123456yarn add less less-loader style-loader -DEVoryarn add scss scss-loader style-loader -DEV 1vue add style-resources-loader 然后会在根目录下自动建一个vue.config.js 更改一下配置就OK了1234567891011121314const path = require('path')module.exports = { pluginOptions: { 'style-resources-loader': { preProcessor: 'less', patterns: [ path.resolve(__dirname, './src/assets ...
H5兼容问题记录
准备作妖1.移动端h5页面软键盘弹出后 背景图片被顶上去(高频) 移动端h5页面在软键盘弹出后body的高度会被压缩,就导致原本高度100%的背景图被顶上去一截,需要把div的高度强行设回100%才能解决这个问题 12345<div class="app" :style="{ height: bodyHeight + 'px' }"></div> mounted(){ this.bodyHeight=document.documentElement.clientHeight} 2. ios手机input、textarea等元素的placeholder如果有多行,软键盘输入数据然后再删除,placeholder就只能显示一行了,不能全部展示(高频); 这个bug 只有ios手机才有;解决思路:在input输入的有值得时候给元素position:relative,没数据的时候position:static,通过改变css让元素重新渲染。这里不一定就要用positi ...
vue3.0创建项目初体验
vue3.0已经发布啦~记录一下自己创建vue3.0项目的学习过程。 更新的一些东西 Object.defineProperty => Proxy vdom 静态标记更加强大 Composition API vite 初始项目一改vue2.x使用vue-cli, vue3.0基于vite去创建项目: 1234npm init vite-app <project-name>cd <project-name>npm installnpm run dev 项目结构123456789101112├── index.html├── package.json├── public│ └── favicon.ico└── src ├── App.vue ├── assets │ └── logo.png ├── components │ └── HelloWorld.vue ├── index.css └── main.js index.html/main.js可以看到 main.js的引用写了type=&qu ...
Composition API 和 React Hook区别 (学习笔记)
Composition API与React Hook很像,说说区别? React Hook 从React Hook的实现角度看,React Hook是根据useState调用的顺序来确定下一次重渲染时的state是来源于哪个useState,所以出现了以下限制: 1.不能在循环、条件、嵌套函数中调用Hook;2.必须确保总是在你的React函数的顶层调用Hook;3.useEffect、useMemo等函数必须手动确定依赖关系; Composition API 而Composition API是基于Vue的响应式系统实现的,与React Hook的相比声明在setup函数内,一次组件实例化只调用一次setup,而React Hook每次重渲染都需要调用Hook,使得React的GC( 垃圾回收 )比Vue更有压力,性能也相对于Vue来说也较慢,Compositon API的调用不需要顾虑调用顺序,也可以在循环、条件、嵌套函数中使用,响应式系统自动实现了依赖收集,进而组件的部分的性能优化由Vue内部自己完成,而React Hook需要手动传入依赖,而且必须必须保证依赖的顺序,让useE ...