算法:滑动窗口
一、无重复字符的最长子集给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。
示例1:
输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
题解:
var lengthOfLongestSubstring = function(s) { let charIndexMap = {}; // 存储字符及其索引的映射 let start = 0; // 初始化子串的起始索引 let maxLen ...
微信小程序
本文件已定稿,最后修改时间 20240823 12:47
一、wxml组件和wxss适配
.wxml —- div
view — div
text文字:可以长按选中
image — img
button
form
input
label
.wxss —- .css单位:rpx
布局:弹性盒布局
二、JS数据-列表-条件渲染-事件
数据data: { str:"这是小程序" city: [ "北京", "上海", "四川" ]}
列表渲染<view wx:for='{{city}}' wx:key='{{index}}'> {{ item }} {{ index }}</view>
...
Vue
本文件已定稿,最后修改时间 20240822 16:27
一、Vue脚手架vue-cli:框架 —-> 脚手架
安装
全局安装npm install -g @vue/cli
测试安装是否成功vue -V
安装老版本vue-clinpm install -g vue-cli
安装指定版本npm install -g vue-cli@版本号
查看全部版本npm view vue-cli versions --json
下载项目vue init webpack 项目名称
创建项目vue create 项目名称
.vue文件三大部分:
template:盒子布局的script:js逻辑style:css样式
main.js只要运行vue项目,main.js就会执行
index.html —> main.js —> App.vue
vue是”数据”驱动定义数据:
<script>export default { data(){ return{ str:'1 ...
算法:双指针
一、移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例1:
输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]
示例 2:
输入: nums = [0]输出: [0]
题解:
定义两个指针, left 和 right 。 left 从索引 0 开始, right 也从索引 0 开始。
遍历数组,使用 right 指针。
当 right 指针指向的元素不是零时:
将 left 指针指向的元素(如果它是一个零)替换为 right 指针指向的元素。
将 left 指针向前移动一位。
当 right 指针指向的元素是零时,继续向右移动 right 指针,直到找到一个非零元素或到达数组末尾。
重复步骤 3 和 4,直到 right 指针到达数组末尾。
当 right 指针遍历完成后, left 指针之前的所有元素都是非零的,并且保持了原始顺序。此时,将 left 指针之后的所有位置填充为零。
...
算法:哈希
一、两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。
示例1:
输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]
示例2:
输入:nums = [3,2,4], target = 6输出:[1,2]
示例3:
输入:nums = [3,3], target = 6输出:[0,1]
题解:
给定一个数组,首先想到的是两次for循环,第一次for循环时拿到第一个元素,第二次for循环时拿到后面的元素,进行判断第一个元素和后面的元素加起来是否是目标值,是则添加到新数组中。
var twoSum = function(nums, target) { let num = []; for (let i = 0; i<nums.length; i++ ...
TypeScript
本文件已定稿,最后修改时间 20240812 03:38
一、基本类型
类型声明
类型声明是TS非常重要的一个特点
通过类型声明可以指定TS中变量(参数,形参)的类型
指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值。否则报错
简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值
语法
let 变量: 类型;let 变量: 类型 = 值;function fn(参数: 类型, 参数: 类型): 类型 { ...}
自动类型判断
TS拥有自动的类型判断机制
当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型
所以如果你的变量的声明和赋值是同时进行的,可以省略掉类型声明
类型:
类型
例子
描述
number
1,-33,2.5
任意数字
string
‘hi’,”hi”
任意字符串
boolean
true,false
布尔值true或false
字面量
其本身
限制变量的值就是该字面量的值
any
*
任意类型
unknown
*
类型安全的any
...
ECharts
本文件已定稿,最后修改时间 20240809 00:10
一、ECharts的介绍ECharts是一个使用JavaScript实现的开源可视化库,兼容性强,底层依赖矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
https://echarts.apache.org/zh/option.html#title
二、ECharts的基本使用
ECharts快速上手
引入echarts.js文件
<script src="echarts.js"></script>
准备一个呈现图表的盒子
<div style='width: 600px; height: 400px'></div>
初始化echarts实例对象
<script> // 参数,dom元素,决定图表最终呈现的位置 const myCharts = echarts.init(document.querySelector('div'))</script> ...
ES6
本文件已定稿,最后修改时间 20240723 01:56
一、ES6语法
let和const
let:声明变量
let声明的变量只能在代码块内有效
不可以重复声明同一个变量
不存在变量提升
【面试题】let 和 var 的区别
var声明变量可能不具有作用域,let声明变量有作用域
var可以声明同一个变量(覆盖),let不可以
var有变量提升,let没有
const:常量
const声明的变量只能在代码块内有效
不可以重复声明同一个变量
不存在变量提升
【面试题】let 和 var 的区别
var声明变量可能不具有作用域,const声明变量有作用域
var可以声明同一个变量(覆盖),const不可以
var有变量提升,const没有
数组和对象解构赋值
数组的解构赋值let a = 10;let b = 20;let c = 30;// 等同于let [a,b,c] = [10,20,30];//let [num1,num2,num3] = [20,30];let [str1,str2,str3=100] = [20,30];
如果没有匹配则是underf ...
Webpack
本文件已定稿,最后修改时间 20240722 10:30
一、webpack模块化打包工具
二、安装webpack
全局安装cnpm install webpack -g
cnpm install webpack-cli -g
测试版本webpack -v
webpack-cli -v
三、配置
入口默认:src/index.js
出口默认:dist/main.js
entry
多文件打包成一个文件
enrty:['./src/a.js','./src/b.js]
多文件打包成多文件
entry:{ a:'./src/a.js', b:'./src/b.js'}
四、loader
loader是什么webpack只能理解Javascript和JSON文件,这是webpack开箱可用的自带能力。loader让webpack能够去处理其他类型的文件,并将他们转换为有效模块,以供应用程序使用,以及被添加到依赖图中
loader的配置写法:
module:{ ...
Git
本文件已定稿,最后修改时间 20240721 15:01
一、svn和gitsvn:集中式
git:分布式
二、git命令
git init:初始化仓库
git config -l:查看配置
git status:查看状态
git add 。:添加到暂缓区
git commit -m '注释内容':添加到分支中
git diff 文件名:查看修改文件的内容
git log:查看修改文件的历史
git reflog:查看修改文件的历史【简单形式】
git reset --hard HEAD^:回到上一个版本
git reset --hard 版本号:回到指定版本
git clone:克隆代码
git pull:更新代码
三、分支操作
git branch:查看本地分支
git branch 分支名称:新建分支
git checkout 分支名称:切换分支
git branch -r:查看远程仓库分支
git push --set-upstream origin 分支名称:本地分支提交到远程仓库
git branch -d 分支名称:删 ...