jira_react项目要点
配置文件public/
manifest.json:pwd
robots.txt:让搜索引擎(搜索引擎爬虫)怎么对待
Disallow:/secret 不允许搜索引擎访问什么页面
根目录
gitignore:告诉git忽略什么文件
package.json:每个前端项目的入口文件
readme.md
tsconfig.json:配置typescript
yarn.lock:锁定版本号,package.jason不能精确锁定版本号,只能锁定到版本号的倒数第一位或者第二位。
注意:在源代码中使用的图片,字体,文件都要放在src中,容易产生误解要放在public。
相对路径嵌套太多层可以配置当前目录使用绝对路径
tsconfig.json:
{
“compilerOptions”: {
“baseUrl”: “./src”,
格式化工具:Prettier
一、Husky
Husky 是一款 Git Hooks 工具,可以在执行特定的 git 命令时(如: git commit, git push)触发对应的脚本
安装: (当前 ...
react
useState为什么返回数组而不是对象?
数组解构赋值是有顺序的
12const arr=['jack','tom','jane']const [one,two,three]=arr
对象解构赋值没有顺序而且解构的变量必须和属性同名才能取到对象
123456const age={ 'jack':19, 'tom':20, 'jane':21}const {jack,tom,jane}=age
所以如果useState返回的数组你可以按照自己的想法对变量进行命名;
如果是对象,如果需要多次使用useState,就必须得重新命名返回值。
返回数组也有不足,必须按顺序,如果有一些变量不需要使用的话,代码会看起来怪
project summary
mini project密码生成器随机的大写字母,小写字母,数字,特殊字符
首先如何获取随机的字符呢
字母:使用fromCharCode静态方法返回由指定的 UTF-16 码元序列创建的字符串。65表示大写字母A,97表示小写字母a
12String.fromCharCode(65 + Math.floor(Math.random() * 26))//A~ZString.fromCharCode(97 + Math.floor(Math.random() * 26))//a~z
特殊字符:把可用的特殊字符放在字符串中
如何知道选项来调用对应的函数生成密码呢
随机字符生成函数和对应的选项生成映射关系:使用对象的键值对形式
123456const randomFunc = { upper: getUp, lower: getLow, num: getNumber, sym: getSymbol}
对应的选项名和对应选项的布尔值(选项名变量)生成映射关系
12const typesArr = [{ upper }, ...
No title
title: data structures and algorithmsdate: 2023-10-07 12:48:44tags:
时间复杂度与空间复杂度时间复杂度:函数体执行多少次O(n)、O(n^2)…O(logN):logN就是2的多少次方为N
let i1234let i=1while(i<n){ i*=2}
空间复杂度:算法在运行过程中临时占用存储空间大小的量度O(1):只声明了一个变量,占用的内存为1
12let i=0;i+=1;
O(n):声明了一个数组,在list数组中添加了n个值,相当于占用了n个单元
1234const list=[]for(let i=0;i<n;i++){ list.push(i);}
O(n^2):相当于一个矩阵,嵌套了两层数组,存储了n^2个变量
1234567const a=[]for(let i=0;i<n;i++){ a.push([]) for(let j=0;j<n;j++){ a[i].push(j); }}
数 ...
js红宝书
js红宝书第十章 函数10.1 箭头函数没有参数和多个参数需要括号,如果不使用大括号,那么箭头后面只有一行代码。这行代码可以是一个赋值操作或表达式。省略大括号会隐式返回这行代码,这行代码不能用return。
10.2 函数名所有函数对象都会暴露一个只读的name属性,其中包含函数的信息。多数情况下保存的是一个函数标识符(字符串化的变量名)。
匿名函数也会显示成空字符串。如果是使用Function构造函数创建的,标识为”anonymous”。如果是获取,设置函数或使用了bind()实例化,那么标识符前面会加一个前缀。
10.3 理解参数在使用function关键字定义函数时,可以在函数内部访问arguments这个类数组对象,获得传进来的每个参数值(可以不写形参(命名参数),而通过arguments[0]等来访问传进来的参数,所以开发者想传多少参数就传多少参数)。
修改arguments对象的值会自动同步到命名参数,但他们还不是访问同一个内存地址,在严格模式下重写arguments对象会导致语法错误。修改命名参数不会影响arguments的值,它始终以传入的参数为准。
虽然箭头函数没有a ...
html+css
html
行内元素:
行内元素不可以设置宽(width)和高(height),但可以与其他行内元素位于同一行,行内元素内一般不可以包含块级元素。
123456789101112131415161718192021222324252627<a> // 标签可定义锚 <b> // 字体加粗 <br> // 换行 <em> // 定义为强调的内容<i> // 斜体文本效果<small> // 呈现小号字体效果<span> // 组合文档中的行内元素<strong> // 加粗<code> // 定义计算机代码文本<abbr> // 表示一个缩写形式 <time> <cite> // 引用进行定义 <dfn> // 定义一个定义项目<kbd> // 定义键盘文本<label> // 标签为 input 元素定义标注 ...
Hello World
Ajax普通的表单提交方式是同步的,会刷新整个页面。
Ajax概念AJAX = 异步 JavaScript 和 XML。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
Ajax实例1.创建异步对象XMLHttpRequest对象XMLHttpRequest对象
所有现代浏览器均支持 XMLHttpRequest对象(IE5 和 IE6 使用 ActiveXObject)。XMLHttpRequest用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。创建 XMLHttpRequest对象的语法:
1let xmlhttp=new XMLHttpRequest();
2.设置请求方式和请求地址如需将请求发送到服务器,我们使用XMLHttpRequest对象的open()和 send()方法:
12xmlhttp.open("G ...