2019年十月月 发布的文章

webstrom3.5破解

webstrom3.5破解
直接上文件 ,文件上面有详细说明

链接:https://pan.baidu.com/s/1uufS_QeTY5qczhBep3uSug&shfl=sharepset
提取码:h8v5

链接:https://pan.baidu.com/s/18C0ZjWZi_kleZPP4pgLiOA&shfl=sharepset
提取码:riiv

链接:https://pan.baidu.com/s/1Pdeqs1Y0dgR-8BdWUCdDGA&shfl=sharepset
提取码:guz3

webstrom 浏览器热更新

以下推荐的方法不能实现边输入边查看的效果,但是能实现的效果是, 按 ctrl + s 保存之后,浏览器立刻更新, 还有就是 点击浏览器也会更新 ,减少按f5的次数

  1. 官网–官网地址

  2. Live.js是一个插件库,使用时直接引入html中即可,默认检测html、css、js,可以在源文件中配置其他的文件后缀来检测比如jsp、php等文件都可以

  3. 不支持直接打开的file协议文件,需要在编辑器中打开才有http协议

  4. 编辑文件后点击浏览器会自动刷新(适用于大部分开发者),在编辑器(idea)中 ctrl+s 后浏览器也会自动刷新(适用于分屏的开发者,不需要鼠标去点击浏览器)

  5. 适用于全局配置的开发环境,部署生产环境时手动注释即可

  6. 需要配置的话可以下载到本地引用,不需要配置的话直接引用官网的即可

HTTP 协议 

hppt协议 

点击查看http发展史

http版本(0.9 , 1.0  , 1.1  2.0 )


http协议的组成部分

1、协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在”HTTP”后面的“//”为分隔符

2、域名部分:该URL的域名部分为“www.yancat.top”。一个URL中,也可以使用IP地址作为域名使用

3、端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80

4、虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.html”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6、锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
————————————————
原文链接:https://blog.csdn.net/ergouge/article/details/8185219


  1. http协议的主要特点
  2. http报文的组成部分
  3. http方法
  4. get和post的区别
  5. http状态码

http协议主要特点

无连接,无状态,简单快速,灵活

无连接: 连接一次之后就会断开,不会保持连接

无状态: 客户端和服务端是两种身份 ,第一次请求结束后, 就会断开, 而当第二次请求的时候,服务端并没有记住之前的转台, 所以服务端无法区别客户端是否是同一个身份

简单快速: http协议是通过url进行定位的, 所以任何资源都是可以通过url进行访问,所以简单快速

灵活: http惬意的头部有一个数据类型,通过http协议,就可以完成不同数据类型的传输


http报文的组成部分

请求报文:

  1. 请求行
  2. 请求头
  3. 空行
  4. 请求体

响应报文:

  1. 状态行
  2. 响应头
  3. 空行
  4. 响应体

请求报文包括


请求行: 包括请求方法 , 请求的url ,http协议和版本

请求头:请求头部由关键字/值对组成,每行一对

空行: 当服务器再解析请求头的时候 ,如果遇到空行, 则表明,后面的内容是请求体

请求体: 数据部分


常见的请求头:

  • text/html — html格式
  • text/plain — 纯文本格式
  • text/css — CSS格式
  • text/javascript — js格式
  • image/gif — gif图片格式
  • image/jpeg — jpg图片格式
  • image/png — png图片格式
  • application/x-www-form-urlencoded — POST专用:普通的表单提交默认是通过这种方式。form表单数据被编码为key/value格式发送到服务器。
  • application/json — POST专用:用来告诉服务端消息主体是序列化后的 JSON 字符串
  • text/xml — POST专用:发送xml数据

响应报文包括:


状态行: 状态行也由三部分组成:服务器HTTP协议版本,响应状态码,状态码的文本描述

响应头:

空行:

响应体:


概括:


http方法

  1. GET : 请求资源
  2. POST : 传输资源
  3. PUT: 更新资源
  4. DELETE: 删除资源
  5. HEAD : 获取报文首部

上述五种方法是面试常问的五种方法

get和post是问的比较多的(重点)

put和delete是实际开发中基本用不上的,因为很少去删除服务器端的东西

head获取报文的首部,会有用到


get和post的区别

  1. get在浏览器回退的时候是无害的, 而post会再次提交请求(重要)
  2. get产生的url地址是可以被收藏的,而post不可以
  3. get请求会被浏览器缓存,而post不会,除非手动设置(重要)
  4. get请求只能进行url编码,而post支持多种编码方式
  5. get请求参数会被完整保留在浏览器历史记录中,而posi的参数不会被保留(重要)
  6. get请求在url中传输的参数是有长度限制的,而post没有(l浏览器限制)
  7. 对参数的类型,get值接收ascll字符,而post没有限制
  8. post比get相对安全,因为get参数直接暴露在url上, 所有不能用于传输账号或者密码等敏感信息(重要)
  9. get参数通过url传递,post放在request body中传递

http状态码

状态码分为五类

  • 1xx : 指示信息 – 表情请求已经接受,继续处理
  • 2xx : 成功 – 表示请求已被成功接受
  • 3xx : 重定向 – 要先完成请求必须进行更进一步的操作
  • 4xx : 客户端错误 – 请求有语法错误或者请求无法实现
  • 5xx : 服务器错误 – 服务器未能实现合法的请求

具体的状态码分类 : 点击这里


常见状态码:

  • 200 请求成功
  • 301 永久重定向
  • 302 临时重定向
  • 304 服务器告诉客户端,有缓存了, 不需要重新下载
  • 400 客户端请求有语法错误,不能被服务器所理解
  • 401 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  • 403 请求页面的访问被禁止
  • 404 资源不存在
  • 500 服务器发生不可预期的错误。
  • 503 服务器当前不能处理客户端的请求,一段时间后可能恢复正常,

本文章大部分的理解来自  https://github.com/qianguyihao/Web 的http文章中, 而我再在他的基础上进行了一些查漏补缺,并且把我认为暂时用不上的的删除重新整理了一份

window10 常用快捷键(个人常用)

window10 中我自已常用的快捷键分两类

  1. window 按键类
  2. ctrl 按键类

window 按键类

  • window + R 运行命令窗口, 快速进入cmd , 注册表(regedit),组策略(gpedit.msc)
  • window + E 快速打开 此电脑
  • window + D 最小化桌面
  • window + L 锁屏
  • window + →/↑/←/↓  窗口快速排版
  • window + TAB  快速切换应用

Ctrl 按键类

  • ctrl + S  保存
  • ctrl + N 新建
  • ctrl + O 打开
  • ctrl + Z 撤销操作
  • ctrl + F 查找
  • ctrl + X 剪切
  • ctrl + C 复制
  • ctrl + V 黏贴
  • ctrl + A 全选
  • ctrl + W 关闭程序
  • ctrl + Esc 显示开始菜单

 

window 新电脑分区

今天你高高兴兴的买了一个新的电脑, 兴高采烈的开机了 ,emmmm,然后你发现了一个很好(sha)玩(bi)的事情, 他只有一个C盘,而且现在你又没有U盘启动工具之类的,你只能是看看怎么能在window上操作分区,最后你找到了这里 .

不要动恢复分区,EFI分区,否则预装系统无法恢复

window10 C盘重新分区步骤

  1. 找到左面 此电脑右击菜单 -> 管理
  2. 找到左侧的 磁盘管理
  3. 你会看到一个C盘
  4. C盘上面右击 压缩卷(1GM = 1024MB)
  5. 然后你就在  “输入压缩空间量” 输入你要分出去多少空间
  6. 然后会多出一个未分区的分区
  7. 右击 “未分配” -> 选择 “新建简单卷”
  8. 出现向导, 直接下一步即可 (卷标就是名称,可以随意改)
  9. 一直下一步直到完成即可
  10. 附上原文链接   window10 C盘重新分区步骤

window 取消打开软件弹框

在使用window 10中,你打开软件默认是会给你来个安全弹框(并没什么用),但是这样子就是会很厌烦,每次都要点击多一下,所以就分享一下取消弹框的方法

  1. 控制面板 -> 系统和安全
  2. 安全和维护
  3. 左边侧栏的  更改用户账户控制设置
  4. 把一个可以下拉的进度条拉到”从不通知”即可
  5. 又是懒得配图的一篇文章, 附上百度百科

window 更改电脑默认安装路径

在日常的电脑使用过程中,我们安装软件都不希望安装在C盘,而是安装在其他的盘符,例如说是D,E之类的专门存放软件的盘 ,但是电脑默认是安装到 C盘的,所以需要我们手动去更改一下盘符,把默认路径改为自已想要的盘符

  1. 按下 window + R
  2. 输入 regedit
  3. 找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
  4. 把右侧的文件夹,只要是C盘开头的 ,全部更换成自已想要的盘符即可
  5. 懒得配图,如果不明白就看百度百科

js es6解构赋值

1. 什么是解构赋值?
结构赋值是ES6新增的一种赋值方式
2. 结构赋值的基本使用

let arr = [1, 3, 5];
        let [a, b, c] = arr;
        console.log("a = " + a);  //1
        console.log("b = " + b);  //3
        console.log("c = " + c);  //5

3. 在数组的解构赋值中, 等号左边的格式必须和等号右边的格式一模一样, 才能完全解构(完全解构就是一一对应的全部结构出来)

//右边是什么样子的格式,左边也必须是对应格式,才能完全解构
        let [a, b, [c, d]] = [1, 3, [2, 4]];
        console.log("a = " + a);    //1
        console.log("b = " + b);    //3
        console.log("c = " + c);    //2
        console.log("d = " + d);    //4

4. 在数组的解构赋值中, 左边的个数可以和右边的个数不一样(左边有多少个变量,那么就解构多少个)

let [a, b] = [1, 3, 5];
        console.log("a = " + a);   //1
        console.log("b = " + b);   //3

5. 在数组的解构赋值中, 右边的个数可以和左边的个数不一样(左边的变量如果没有被结构, 那么则会是undefined)

let [a, b, c] = [1];
        console.log("a = " + a);   //1
        console.log("b = " + b);   //undefined
        console.log("c = " + c);   //undefined

6. 在数组的解构赋值中,如果右边的个数和左边的个数不一样, 那么我们可以给左边指定默认值

let [a, b = 666, c = 888] = [1];
        console.log("a = " + a);    //1
        console.log("b = " + b);    //666
        console.log("c = " + c);    //888

7. 在数组的解构赋值中, 如果左边的个数和右边的个数不一样, 那么如果设置了默认值,那么默认值将会被覆盖

let [a, b = 666] = [1, 3, 5];
        console.log("a = " + a);        //1
        console.log("b = " + b);        //3

8. 在数组的解构赋值中, 还可以使用ES6中新增的扩展运算符来打包剩余的数据(ES6中新增的扩展运算符: …)

如果使用了扩展运算符来打包,那么打包的会转换为数组

 let [a, ...b] = [1, 3, 5];
        console.log("a = " + a);    //1
        console.log("b = " + b);    //[3.5]

9. 在数组的解构赋值中, 如果使用了扩展运算符, 那么扩展运算符只能写在最后

  //  ... 扩展运算符只能是最后一个变量添加, 而不能是最中间,或者前面
        let [a, ...b] = [1, 3, 5];
        console.log("a = " + a);   //1
        console.log(b);            //[3.5]

 

js循环嵌套输出99乘法表

如果使用js的循环嵌套输出99乘法表的原理,其实也就是正三角的输出原理

把内循环的条件表达式,改为外循环初始化表达式的变量即可

上完整代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title></title>
    <style>
        span {
            display: inline-block;
            width: 72px;
            border: 1px solid gray;
            margin: 5px;
            padding: 5px;
            font-weight: 700;
        }
    </style>
</head>
<body>
<script>
    for (let i = 1; i <= 9; i++) {
        for (let j = 1; j <= i; j++) {
            document.write("<span>" + i + "*" + j + "=" + i * j + " " + "</span>")
        }
        document.write("<br>")
    }

    /* 
     外循环控制行数,内循环控制列数
     循环九行出来,用行数乘列数进行输出99乘法表
     */
</script>

</body>
</html>

 

输出结果:

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

js使用for循环嵌套输出正三角

需求:输出到三角形到界面

*
**
***
****
*****

想要输出正三角, 首先得了解一个规律, 循环嵌套规律

循环嵌套 => 外循环控制行数 ,内循环控制列数(横行竖列)


先输出一个矩形试试

<script>
    for (let i = 0; i < 5; i++) {
        for (let j = 0; j < 5; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*****
*****
*****
*****
*****

得到这个效果之后 ,观察一下规律

正三角的规律

第二行的列数比第一行的列数多

第三行的列数比第二行的列数多

第四行的列数比第三行的列数多

第五行的列数比第四行的列数多


得到规律之后,也知道了, 循环嵌套是 外循环控制行数,内循环控制列数 

所以现在我们只需要进行列数的控制即可,控制什么呢?控制每次每循环一次,列数就比上次循环的多一列

<script>
    //输出五行
    for (let i = 0; i < 5; i++) {
        //每次循环的时候输出一列,
        //因为循环是从0开始的,所以要进行+1
        for (let j = 0; j < i + 1; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*
**
***
****
*****

现在成功输出了正三角了,而输出正三角形的方法则是改变内循环的循环次数,在第一次循环的时候,改变循环的时候的列数即可,

 

而下面的第二种方式输出的效果也是一样的, 只要弄懂了规律,那么输出的方式多种多样

<script>
    //输出五行
    for (let i = 1; i <= 5; i++) {
        //每次循环的时候输出一列,
        //因为循环是从0开始的,所以要进行+1
        for (let j = 0; j < i; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*
**
***
****
*****

第三种方式

<script>
    for (let i = 0; i < 5; i++) {
        for (let j = 0; j <= i; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*
**
***
****
*****

第三种方式规律, 把内循环的条件表达式,改为外循环初始化表达式的变量即可

js使用for循环嵌套输出倒三角

需求:输出到三角形到界面

*****
****
***
**
*

想要输出倒三角, 首先得了解一个规律, 循环嵌套规律

循环嵌套 => 外循环控制行数 ,内循环控制列数(横行竖列)


先输出一个矩形试试

<script>
    for (let i = 0; i < 5; i++) {
        for (let j = 0; j < 5; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*****
*****
*****
*****
*****

得到这个效果之后 ,观察一下规律

倒三角的规律

第二行的列数比第一行的列数少

第三行的列数比第二行的列数少

第四行的列数比第三行的列数少

第五行的列数比第四行的列数少


得到规律之后,也知道了, 循环嵌套是 外循环控制行数,内循环控制列数 

所以现在我们只需要进行列数的控制即可,控制什么呢?控制每次每循环一次,列数就比上次一次的少一列


<script>
    for (let i = 0; i < 5; i++) {
        //控制列数的内循环
        for (let j = i; j < 5; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*****
****
***
**
*

现在成功输出了倒三角了,而我们从一个矩形输出转换为倒三角,只改了代码的一个字符, 也就是把内循环的初始值改变成了外循环的初始化值

外循环每循环一次,i都要加1 ,所以 i = 0,1,2,3,4; 而我们内循环正好是需要减少循环输出的列数,所以 i = 0的时候,则输出5个,i =1,的时候输出4个,以此类推,那么就得到了一个倒三角

 

而下面的第二种方式输出的效果也是一样的, 只要弄懂了规律,那么输出的方式多种多样

<script>
    for (let i = 0; i < 5; i++) {
        //控制列数的内循环
        for (let j = 0; j < 5 - i; j++) {
            document.write("*");
        }
        document.write("<br/>")
    }
</script>
*****
****
***
**
*

js自增自减运算符

什么自增自减运算符?

自增运算符: ++

自减运算符: – –


自增自减运算符的作用

自增运算符:可以快速的对一个变量中保存的数据进行 + 1

自减运算符:可以快速的对一个变量中保存的数据进行 – 1

自增运算符和自减运算符的底层原理:变量A = 变量A   +/ – 1


–基础用法


<script>
	//自增运算符
	let num = 5;
	num++;
	console.log(num) //6
	console.log("-------");
	//自减运算符
	let num1 = 5;
	num1--;
	console.log(num1); //4
</script>

自增和自减运算符,不仅仅是可以写在变量的后面, 还可以写在变量的前面

<script>
	//运算符写在前面
	//自增运算符
	let num = 5;
	++num;
	console.log(num);	//6
	//自减运算符
	let num1 = 5;
	--num1;
	console.log(num1);	//4
</script>

既然自增运算符和自减运算符都可以写在变量的前面和后面,但是他们的区别又是什么呢?

区别:

写在变量的后面,表示变量先参与其他的运算,然后再进行自增或者自减

写在变量的前面,表示变量先自增或者自减,然后再参与其他的运算


<script>
	let num = 1;
	let res = num++ + 1;
	console.log(res);		//2
</script>

上面的答案是等于2的原因则是

写在变量的后面,表示变量先参与其他的运算,然后再进行自增或者自减

let res = num++ + 1;   这句话是可以拆分成以下两句话

let res = num + 1  ;    num ++;

num会参与运算,也就是先+1, 然后自已再进行++操作, 所以结果等于2


<script>
       let num = 1;
       let res = ++num + 1;
       console.log(res); //3
</script>

上面的答案是等于3的原因则是

写在变量的前面,表示变量先自增或者自减,然后再参与其他的运算

let res = –num + 1;   这句话是可以拆分成以下两句话

let res = num ++;     num + 1  ;

num会先自已自增,也就是自增后num已经等于2了, 再和运算+1, 那么结果就是3


自增自减运算符的注意点:

自增自减运算符只能是出现在变量的前面或者后面,而不能出现在常量或者表阿达的前边或者后面.(常量不能被改变)

错误写法
<script>
	666++;
	++666;
		
	(1+1)++;
	++(1+1);
</script>

在开发中 ,最后不要把自增或者自减运算符写在表达式中,而是分开写

<script>
	let a,b;
	a = 10;
	b = 5;
	let res = a++ + ++b;
	//上面的这句话可以拆分成下面两句话,但是上面的这句话阅读极差.所以不推荐
	//a + b++ ;  10 + 6
	//a ++ 	    11
	console.log(res);
</script>

推荐以下写法

<script>
	let a,b;
	a = 10;
	b = 5;
	b++;
	let res = a + b;
	a++;
	console.log(res);
</script>

两种写法的不同,一种写在表达式中,一种写在表达式外边, 而代码的可阅读性则会是天差地别。


重点难点:

自增和自减运算符中的 写在前面和写在后面的区别 ,这个是重点,特别是写在前面,这个是一个重点,重点掌握以下即可。

扫码使用手机查看

站点统计

  • 文章总数:66 篇
  • 页面总数:8 个
  • 评论总数:4194 条
  • 分类总数:4 个
  • 标签总数:19 个
  • 运行天数:135 天

你凭什么不努力,但又什么都想要~


「温馨提醒您」: 代码千万行,注释第一行。命名不规范,同事泪千行。

阅读统计

  • 9533总阅览数:
  • 10今天阅读数量:
  • 9今天访问者数:

近期文章

文章归档

分类目录

标签云

© 2020 - Sitemap - Privacy Policy