- 博客(37)
- 收藏
- 关注
原创 什么是堆内存和栈内存
堆内存和栈内存:概念:基本数据类型存储在栈内存中引用数据类型存储在堆内存中区别:栈内存:由操作系统自动分配释放堆内存:一般由程序员手动释放,否则将会由os来回收...
2020-04-16 14:40:37
1767
原创 浅拷贝与深拷贝讲解
什么是浅拷贝什么是深拷贝?浅拷贝如果b复制了a,修改b时如果a也跟随b发生改变,那么这个就是浅拷贝,举个在生活中的例子,就好比一台电脑,被人远程连接了,虽然感觉是变成了两个电脑而且都有相同的内容,但是其实电脑的内容存在的硬盘是一个,不管是远程连接的人对电脑进行修改还是本机进行修改,都会影响双方的电脑。深拷贝如果b复制了a,修改b,a没用发生变化,修改a,b也不会变,那么这个就是深拷贝,举个...
2020-04-16 09:55:47
304
原创 什么BFC布局?有什么用
什么是BFCBFC(格式化上下文),简单而言就是一块独立的区域,而且是一个不会受到外部环境影响的独立区域。如何触发形成一个BFC布局 --》通过一下四点条件任意满足即可形成BFC布局1.float不为none2.position不为relative或static3.overflow为auto scroll或hidden4.display为inline-blockBFC可以解决什么...
2020-04-15 13:42:34
196
原创 git报错:remote: HTTP Basic: Access denied
解决方法:1.控制面板–》选择用户账户–》选择管理你的凭据–》选择windows凭据–》-普通凭据-》选择git的信息–》编辑或删除可进行编辑更新git信息。也可以直接删除,后续可创建。等你再次去同步代码的时候,提示你输入用户名和密码,输入即可同步。...
2020-04-02 10:07:30
201
原创 如何判断当前浏览器的信息
function myBrowser() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera = userAgent.indexOf("Opera") > -1; if (isOpera) { return "Opera" }; //判断是否Opera浏览器 if ...
2020-03-19 20:25:19
222
原创 一个预编译理解的小练习
下面程序输出的结果是?if(!( "a" in window )){ var a = 1;}alert(a);代码解析:如果 window 不包含属性 a,就声明一个变量 a,然后赋值为 1。你可能认为 alert 出来的结果是 1,然后实际结果是 “undefined”。要了解为什么,需要知道 JavaScript 里的 3 个概念。首先,所有的全局变量都是 window 的属...
2020-03-19 15:45:44
215
4
原创 mouseover和mouseenter的区别
mouserover事件:鼠标穿过被选中元素会触发mouseover事件,而且鼠标穿过子元素也会触发mouseover事件。(原因:鼠标穿过子元素产生的冒泡事件触发了mouserover事件)moserenter事件:只有在鼠标穿过被选元素时才会触发mouseenter事件,鼠标穿过子元素不会触发...
2020-03-19 13:55:33
225
原创 Access-Control-Allow-Origin 【跨域】
目前环境是这样的:前端网页端口为http://localhost:8080/,后端端口为http://localhost:3000,这样前端访问后端必出现跨域问题,如下:非同源那么该怎么做呢?只需让服务器告诉浏览器从你这个域名来的也可以访问即可,如下:服务器接收到请求头,查看一下请求头中的origin是不是我要请求的http://localhost:8080,如果是那么返回头中的Acces...
2020-01-17 11:29:13
459
原创 express搭建服务器环境
1.首先找个空文件夹,然后用cmd定位到这个文件夹下,然后进行如下两条命令npm install express --save -g // 安装expressnpm install express-generator --save -g // 安装express应用生成器,它可以快速构建应用目录2.创建项目,在此文件夹下,通过cmd输入以下命令F:\blog\back>...
2020-01-17 10:18:27
340
原创 【工具】自动生产README.md中的目录
1.安装npm install -g treertreer --version // 检查版本2.使用treer -e readME.md -i "/node_modules/ // -e readME.md 是生成文件,后面的-i “****”的目的是为了忽略文件不生产在目录中3.完成...
2020-01-17 09:40:51
474
原创 选择器的优先级计算
!important>行内样式>ID选择器>类选择器>标签>通配符>继承>浏览器默认属性说个不是很恰当的话就是,但是可以这么理解一下,越精确的选择器的优先级越高...
2020-01-08 15:20:22
257
原创 css有几种选择器,有什么区别?
基本选择器1.标签选择器:直接用元素的标签来进行选择span { // 直接选择span标签 size:16px;}2.ID选择器:通过设置id名字,进行精确的选择,用#来定义# div1 { //通过id名字来进行选择 color:red;}<div id="div1">1</div>3.类选择器:通过类名来进行选择,选择范围比id选择器大,...
2020-01-08 15:16:33
2092
1
原创 input中,name有什么用
1.作为一个标识,通过name获取元素内的值2.在radio,单选框中,通过设置相同的name来规定只能选择一个3.通过给 来给页面加一个锚点4.作为服务器端的标示,我们可以在服务器端根据其name取得元素提交的值...
2020-01-08 10:49:21
1971
原创 encodeURIComponent()有什么用?
encodeURIComponent():因为在作用与url当作参数传递的时候,如参数出现空格这样的特殊字段,后台只可以读取到空格前的内容,后面内容丢失,造成数据读取失败,但是如果用encodeURIComponent()包裹一下,那会将这些特殊字符进行转义,这样后台就可以成功读取了,所以encodeURIComponent()用于url作为参数传递的场景中使用...
2020-01-06 19:30:07
12308
原创 什么是sql注入
因为用户在客户端填写的信息我们无法控制,所以可能出现sql注入的情况,以下拿一个用户注册的场景做个例子:let {user,pass}=query; // 这里的user是用户在注册时填写的用户名,pass是密码db.query('INSERT INTO user_table (ID,user,pass) VALUES (0,user,pass)); // 一般情况下,正常的数据直接就存储到数...
2020-01-03 13:02:31
91
原创 缓存是什么?有什么用?
大家都知道每当页面刷新请求的时候,客户端都向服务端发送请求,然后服务端再把数据(图片,文字等等)发送到客户端,渲染在页面上,但是一个网站中假设有某些资源,例如某些图片,是从网站建立一开始到网站倒闭都不改变的,那难道我们每次打开这个网页都要去请求发送一次图片的资源吗?答案是肯定不是,在浏览器中,如不是很重要的数据都是可以作为缓存存在浏览器中,好比图片,假如之前打开过这个网页也加载过这个图片,那么当我...
2020-01-02 13:46:31
473
1
原创 两个对象中相同的值进行赋值,并不改变原有的数据
对象1对象2现在需求要将对象2中的值并且是对象1中有的赋值给对象1中,而且保留对象1中对象1有单对象2并没有的属性
2019-12-25 09:54:50
2165
1
原创 git 添加ssh keys出现Key is invalid. You must supply a key in OpenSSH public key format,如何解决
1.输入$ cd ~/.ssh2.$ vi id_rsa.pub ,然后全部复制即可
2019-12-19 19:59:13
2667
原创 浅谈vue----watch和computed的区别
watch:主要是监听数据,监听props,data,computed内的数据是否发生了变化,然后它还提供两个参数(new,old),提供你观察变化之前的值和变化之后的值,所以watch更多的操作是在于【观察】上,所以再外面需要监控数据变化或者还要执行异步操作的时候,最好是使用watchcomputed:主要是处理【逻辑运算】,而且computed是可以缓存的,这样就可以避免每次计算都重新获取值...
2019-12-17 18:21:30
204
原创 一句话弄明白--this关键字
其实,要想弄明白this的用法,只需牢记一句话:this永远指向的是调用它的对象,也就是看谁调用执行的它。下面用几个小例子来表达演示一下var str ='全局变量'function a(){ var str='局部变量'; console.log(this.str); //全局变量 console.log(this) //window }window.a(); //函数...
2019-12-12 11:28:31
161
原创 浅谈跨域,与解决方法
首先我们要知道什么情况下是跨域,比如我现在网页a,但是我现在需要从网页a的域名区请求网页b的资源,并且网页a与网页b协议或者域名或者端口有任何一个不一样,那么这就是跨域那么什么是同源?同源就是指的是在一个域里,也就是两个页面的协议,域名,端口都一样,这就是同源。跨域的解决方法;1.使用document.domain因为在cookie里有这么一个东西,叫做domian,它可以判断cookie...
2019-12-11 16:16:03
170
原创 使用弹性布局水平垂直居中
首先看代码 <style> .div1{ width: 100px; height:100px; background: palevioletred; display: flex; // 1 justify-content: center; // 2 align-items: center; // 3 } ...
2019-12-11 00:22:37
1526
原创 web前端对网页进行性能优化几种方法
前端性能优化,加上要加快网页的加载速度!!!!下面就提供几个施行性比较高的方法1.tcp协议使用keep-alive,第一次请求之后不要断开,这样第二次请求可以节省时间2.http请求减少cookie内容,因为cookie是跟随http请求的3.优化css与js尽量减少因dom操作而产生的回流,js放在body最后,这样可以尽可能早的显示页面,后加载js,css放在head里,因为只有...
2019-12-10 15:28:17
339
原创 callback的理解
callback函数是什么,从字面就可以读出来,就是回调函数,那什么是回调呢?就是我给函数a一个函数b,让这个函数b在函数a中执行,比如,我让函数a执行一半的时候,再回头调用函数b,这么一个操作就叫做回调。那么就有疑问了,为什么不直接调用函数b呢?如下function a (){ b();}function b(){ console.log('i am b');}上述代码,可以想...
2019-12-10 14:17:23
280
原创 浅谈--浏览器的本地存储--cookie与localstorage
现在主要用到的浏览器的存储cookie和localstorage两种方法cookie首先说一下cookie的处理分为1.服务器向客户端发送cookie服务器向客户端发送cookie是通过http响应报文实现的,即在set-cookie中设置需要发送的cookie,如下图;在cookie中name和value是必须要有的,domain是意味着cookie是作用在哪个域中,在这个域中都包...
2019-12-10 13:50:55
381
原创 浅谈vue-router
首先我们要知道SPA单页面应用,因为单页面应用只有一个页面,所以不能使用传统的路由请求,而是指定模块或者内容去发送请求,所以vue-router就提供了两个方式:hash模式和history模式1.hash模式http://www.abc.com/#/hello这个模式就是在#后加上路径,比如URL:http://www.abc.com/#/hello这样与传统的url的区别是,在之前ur...
2019-12-10 08:24:37
98
原创 什么是闭包
什么是闭包?简单来说就是,有一个外层函数a,并且函数a中还有个内层函数b,函数a中有个定义变量aa,这个变量aa按理来说应该在函数a执行完,就会被内存销毁,但是在函数a中的函数b,不仅用到了外层函数中的变量aa,而且还return了aa,把变量aa返回到了一个全局的状态下,这就叫做闭包function a(){ var aa='i am a'; return function(){ re...
2019-12-06 11:29:56
349
原创 什么是函数柯里化?有什么应用?
首先先看一个简单的函数function sum(a,b,c){return a+b+c;}很简单吧,这是一个三数的相加操作,然后我想能不能这样操作也能执行成功三位相加的操作,例如这样传值sum(1)(2)(3),这该怎么做?这其实也是一个比较经典的面试题,答案如下:function sum(x){ return function(y){ return x+y; }}这...
2019-12-05 09:57:19
2815
2
原创 详解call方法是什么?有什么用?
首先我们先看一段代码function a (){ console.log("i am a");}function b(){ conssole,log("i am b"); a.call(this);}b(); // 运行b,首选打印出 i am b,然后打印i am a由此我们可以看出,b函数继承了a函数的console.log(“i am a”)方法,并且在执行完自己方法后...
2019-12-04 11:16:26
1687
原创 简单讲解arguments是什么
首先arguments是一个类对象数组,注意这是一个类数组!!不是数组,arguments存在于每个函数中,我们可以打印看一下 function fn1(){ console.log(arguments); };这是直接打印fn1函数中的arguments,这是没有往fn1函数中进行参数的传值状态下的打印。那么在传参状态下打印是什么样的?我们可以打印一下function fn...
2019-12-04 10:21:44
1105
原创 async与await有什么用?可以做什么?如何解决异步问题
相信很多人遇到过这样的问题,在方法a中调用了方法b,并且需要方法b中的接口的返回值,但是在程序运行中,方法a已经执行晚了,方法b的接口才刚返回数据,造成方法阿执行错误,这样的问题就是异步问题数据=a;function a(){ this.b(); console.log(数据); //打印出依旧是数据a}function b(){ 数据=调用了接口,获取到接口的返回值b;}结果...
2019-12-03 15:18:29
2289
原创 事件委托(事件代理)是什么?有什么用?
首先要说事件委托,那麽必须要明白两个概念,一个是冒泡事件一个是捕获事件,以下是捕获事件与冒泡事件的代码打印,点击span子元素,首先引发事件捕获事件,触发顺序从最外层的元素开始,逐步前往内层,直到达到实际点击触发的元素,然后触发事件结束,开始事件冒泡,事件冒泡与捕获正好相反,从元素内部开始,逐步冒泡到元素的最外层。<div id="div1"> <span id="spa...
2019-12-03 09:50:32
753
原创 vue--如何根据可视窗口的大小自动调节图片大小
首先需要用到两个东西,1:onresize事件,当浏览器发生变化时触发事件 2:clientWidth方法,获取你现在元素下的窗口宽度,然后对你获取到的宽度进行你所需要的比例的运算即可 mounted () { this.screenWidth = document.body.clientWidth; this.height = (document.body.clientWid...
2019-12-02 15:21:09
2425
原创 arguments.callee有什么用
使用argument是.callee,一般使用在递归函数中,首先要知道什么是递归函数fucntion a(num){ if(num<10){ num++; return a(num); }}但是在上述程序中,有个问题,即函数的名称可能发生改变,导致递归失败,如使a=null的操作,所有现在就可以使用arguments.callee函数只想正在执行的函数对象fucntion ...
2019-12-02 14:58:09
150
原创 原型模式与工厂模式与构造函数模式的区别
工厂模式function person(name){ var a=new Object(); a.name=name; a.say=function(){ console.log(this.name); } return a; } var p1=person('lie'); console.log(p1);构造模式 fun...
2019-12-02 14:19:20
447
原创 通过@viewchild调用子组件的函数
首先app-department-tree为引用的子组件,现在需要调用子组件的方法 <div class="col-md-3"> <app-department-tree #Tree [rootNodeParam]="rootNodeParam" [credentials]="credentials" (changeParentId)="changeParen...
2019-12-02 13:41:18
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人