自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑黑黑眼圈博客

纵使代码千万行,比比谁比谁更强

  • 博客(35)
  • 收藏
  • 关注

转载 ts基础

这里写目录标题一、ts中的数据类型1.1 js和ts的区别1.2 js有的类型1.4.1 类型断言1.5 类型定义二、函数定义2.1 可选参数2.2 默认参数三、ts中的接口3.1 定义接口对参数进行约束四、ts中的泛型一、ts中的数据类型1.1 js和ts的区别语言层面:JavaScript和TypeScript都是ECMAScript(ECMA-262)的具体实现。执行环境层面:浏览器引擎和Node.js都能够直接运行JavaScript,但无法直接运行TypeScript。时序层面:Type

2021-04-19 15:44:57 699

原创 Vue基础

1.vue的三个特点数据双向绑定、组件化、单文件组件2.vue的基本使用vue的MVVM的体现:model代表模型,view代表视图(即页面),viewModel代表视图模型(vue实例)<div id="app"> <input type="text" v-model="username"> <p>Hello {{username}}</p> // 显示使用{{}}</div><script type="text

2021-04-10 20:33:54 202

原创 git使用

git常用命令git commit(提交记录)提交记录,与历史(c0)提交对比。提交c1,c0作为父节点。git commit -m 'add/update/delete:修改声明'git branch(分支)简单的指某次提交的记录。(早建分支、多用分支)创建分支git branch dev1.0#切换分支后再提交新版本git checkout dev1.0git commit -m 'update:something'## 切换并创建 将git branch 与git che

2021-03-29 20:39:15 168

转载 React函数式组件使用Ref

目录:简介useRefforwardRef简介大家都知道React中的ref属性可以帮助我们获取子组件的实例或者Dom对象,进而对子组件进行修改,是一个很方便的特性。在传统类组件中,我们通过使用 React.createRef() 创建的,并通过 ref 属性附加到 React 元素来使用。而随着hooks的越来越广泛的使用,我们有必要了解一下在函数式组件中,如何使用Ref. 想要在函数式组件中使用Ref,我们必须先了解两个Api,useRef和forwardRefuseRefconst

2021-01-02 20:55:06 4901

原创 ES6视频学习

什么是ECMA?一个组织,不过多写了。let声明变量 let特性let同一个作用域下不能重复声明块级作用域,let声明的变量是在块级作用域的,块级作用域通常是一个{}没有变量提升不影响作用域链,同样满足向上查找该变量。const声明常量常量就是不能改变的量。一定要赋初始值。一般常量使用大写常量的值不能修改块级作用域没有变量提升一旦声明一个常量就不允许改变,但是只是不能改变栈中,即不能修改基础类型,可以对数组和对象中的元素进行修改,可以改变堆内存中的。const arr

2020-10-09 11:22:56 251

原创 前端小白在项目中遇到的问题

问题一.使用ra的field,一列只能展示一个字段,那如果在一列展示后端传来的两个字段呢?解决:使用单独的组件,在该组件中通过antd的<col>来解决<Col> <p></p> <Button></Button></Col>问题二:后端传来的字段是1,转化成对应的汉字const Choice = { 0: '作业', 1: '完成' , 2: '

2020-08-08 02:25:15 565

原创 前端面试代码总结中

快速排序function quickSort(arr){ if(arr.length<=1){ return arr;}var midindex=Math.floor(arr.length/2);var midvalue=arr.splice(midindex,1)[0];//取出中间项var arrLeft=[];var arrRight=[];for(var i=0;i<arr.length;i++){ var item=arr[i]; item<midva

2020-05-16 18:58:35 287

原创 前端面试总结

html<meta>的作用html5的新特性Doctype的作用css标准盒模型和IE盒模型的区别flex布局flex:1垂直居中的方法position的属性清除浮动方法,为什么要浮动,为什么要清除index堆叠css3的新特性transformpx、em、rem媒体查询两栏布局圣杯布局jsapply、call、bind的区别this...

2020-04-20 16:18:52 201

转载 深浅拷贝

一、数据类型基本数据类型:直接存储在栈中的数据引用数据类型:在栈中存储了指针,该指针指向堆中真实的数据。在寻找引用值时,先去检索栈中的地址,取得地址后从堆中获取实体。二、深浅拷贝浅拷贝只是复制指向某个对象的指针,而不是对象本身。新旧对象共享一块内存,修改新对象会会改变原对象。深拷贝会创建一个一模一样的对象,新旧对象不共享内存,修改新对象不会改变原对象。和原对象是否指向同...

2020-04-15 13:43:56 164

转载 webpack、es6和commomJS之间的关系

babel是将es6转为es5,而webpack从名字也能看出来,是一个打包工具,根据文件之间的依赖关系,将文件进行打包。在这里理清一下以上几个概念以及他们之间的关系。es6、babel和commonJS的关系现在的浏览器很多都不支持es6的语法,或者仅仅是部分支持,比如你用.360浏览器,你会发现它支持let却不支持箭头函数等。babel就承担了“翻译”的角色,把es6的写法转换成es5...

2020-04-07 18:12:38 355

原创 vuex的原理

1.vuex的作用vuex是专门为Vuejs应用程序设计的状态管理工具。其实是集中的数据管理仓库。相当于数据库mongoDB等,任何组件都可以存取仓库中的数据。vuex的组成部分:state:是存储的基本数据。mutations:提交更改数据。getter:对state加工,和computed计算属性一样。actions:处理异步,通过store.commit方法触发mutation...

2020-04-07 16:42:06 8927

转载 vue的数组监听

Vue中对数据的监听主要依靠Object.defineProperty来实现的,这种实现主要针对key/value形式的对象,对数组中的值的变化是无能为力的,definrProperty是无法监听数组长度的变化,监听索引的代价也很高,那么应该怎么对数组中的数据进行监听呢?一、数组的变化情况:数组本身的赋值数组中push等方法导致的变化数组中的值变化操作数组的长度导致的变化二、对上面...

2020-04-05 19:12:07 2388

转载 ajax和fetch、axios的区别以及axios原理

从原生的XHR到jquery ajax,再到现在的axios和fetch,究竟发生了哪些变化,我们接下来就来探讨一下。jquery ajax它是对原生XHR的封装,随着vue、react框架的兴起,很多情况下我们只需使用ajax可是却要引入整个jquery,这是非常不合理。$.ajax({ type:'POST', url:url, data:data, dataType:dataT...

2020-04-04 18:16:36 947

转载 vdom的原理

结论vue中vdom渲染页面的过程:将<template>模板,通过render渲染函数(createElement())得到虚拟的DOM树,通过diff算法进行新旧虚拟节点的比较,再通过patch更新到真实的dom上实现视图的更新。1.什么是Virtal DOM?vdom指的是用JS模拟的DOM结构,将DOM的变化对比放在JS层。 <ul id="list"> ...

2020-04-04 14:53:30 1103

转载 async/await的原理以及和promise的区别

一、async/await的基础使用async/await是一套关于异步的解决方案。下面是它的基本使用。注意!!但是使用async/await的时候,无法捕获错误,需要通过try/catch来捕获。async返回promise对象,只有当async函数内部的异步操作执行完,才会执行then方法的回调函数。//定义一个异步函数getJSON(){ return 'JSON'};//...

2020-04-03 17:53:18 2037 1

转载 TCP为什么三次握手又为什么四次挥手

为了实现可靠的数据传输,TCP协议的通信双方,都必须维护一个序列号,以标识发送出去数据包,有哪些已经被对方收到。三次握手的过程就是双方相互告知序列号的起始值,并确认对方已经收到起始值的必经步骤。如果只有两次,至多只有连接发起方的起始序列号能被确认,另一方的序列号起始值不能被确认。

2020-04-01 16:34:59 152

转载 vue双向绑定原理

1.前言每次被问到vue的双向绑定原理,都会说,采用数据劫持结合发布订阅者模式的方法,通过Object.defineproperty()来劫持数据的getter、setter属性,如果数据发生变化,通知订阅者执行更新的回调函数,实现视图更新。但是当被问到watcher、dep等深层的概念时可能就over了。2.思路分析MVVM数据双向绑定,主要是视图变化更新数据。数据变化更新视图。视图...

2020-04-01 15:02:25 143

转载 promise的实现

1.promise的声明首先promise是一个类,那么就用 class声明。由于new promise((resolve,reject)=>{}),所以传入一个参数,我们叫它executor,传入立即执行。resolved、reject可执行,所以都是函数,我们用let声明。class promise{ constructor(executor){let resolve...

2020-03-31 14:21:49 344 1

原创 高性能javascript总结

一、加载和执行问题起源多数浏览器使用单线程来处理用户界面UI刷新和Javascript脚本的执行,所以同一时刻只能做一件事。javascript脚本霸道地让页面等待自己执行完毕。解决办法html4中的规范指出<script> 可以放在文档的head或者body中。理论上说将样式文件和脚本文件放在head中有助于页面的渲染和交互。<html><head&gt...

2020-03-30 19:24:00 359

原创 javascript语言精粹总结

一、javascript语法Number它在内部被表示为64位的浮点数,而且它没有分离出整数,1.0===1.好处是完全避免短整型溢出的问题。string字符串字面量可以包含在一对单引号或者双引号中,javascript中所以字符都是16位的。字符串有一个length属性。完全相同的字符+字符串顺序一样的字符串被认为是相同的字符串。字符串连接有很多种,例如concat、slice、...

2020-03-30 14:56:12 620

原创 javascript---ES6 二

map的认识如果键名相等,则后面的会覆盖前面的。如果键名是NaN也是会覆盖。'use strict'var obj={ 'name':'leo',//map的key必须是字符串 'qq':'1405211', 'full name':'wang san'};//obj.name;//map中的方法let map=new Map();map.set(12,'number=12'...

2020-03-26 20:05:06 195

原创 javascript-ES6一

let、var、const的区别类之前的的语法类function Person(name){this.name=name;}//静态方法Person.getClassName=function(){return 'Person';}Person.prototype.changeName=function(name){this.name=name;}//var p=new ...

2020-03-23 17:34:21 263

原创 javascript高级程序设计总结二

一、面向对象的程序设计1. 属性类型// 1.数据属性 object.defineproperty(属相所在的对象,属性名,(4种)) let person = {}; Object.defineProperty(person, "name", { configurable: true, //表示能否通过delete删除属性从而重新定义属性,能否修改属性 ...

2020-03-21 19:13:05 307

转载 javascript高级程序设计总结一

javascript高级程序设计总结一、Number类型1.浮点数注意2.数值二、垃圾回收问题三、引用类型1.数组总结2.date对象3.regExp对象4.函数5.基本包装类型6.内置对象一、Number类型1.浮点数注意0.1+0.2===0.300000000004存在浮点精度缺失的问题。2.数值NAN是非数值,NAN不等于它本身。isNAN()可以用来判断是不是非数值,如果是非数...

2020-03-17 18:54:41 194

转载 vue生命周期的理解

vue第一个生命周期beforecreate创建前拿不到任何数据也不能访问domvue的第二个生命周期created创建完成可以拿到数据编译中dom未挂载,无法获得真实的页面vue的第三个生命周期 beforemount挂载前可以获取数据编译完成dom未挂载vue的第四个生命周期mounted挂载完成(创建完成了)能拿到数据编译完成挂载到dom上...

2020-03-16 18:10:46 274

原创 canvas动态画一条不同颜色的线

问题描述##使用canvas动态画一条颜色不同的线,即前五个点连成一条黑线后五个点连成一条红线,并且动态呈现。思路呈现首先,了解非动态画一条不同颜色的线。代码展示: <script> //demo1 不渐变线条 var c = document.getElementById("myCanvas"); var ctx = c.getContex...

2019-08-15 17:13:11 6116

转载 窗口缩放导致页面排版错乱的解决方法

简单的说就是设置body的宽度,那么如何动态的获取浏览器减去侧边滚动条之后的宽度,原理就是通过创建一个带有滚动条的div(也就是overflow:scroll),利用offsetWidth-clientWidth得到滚动条的宽度,再利用window.screen.availWidth减去滚动条的宽度即可得到浏览器除了滚动条以外的宽度,body再设置该宽度,即可解决缩放排版错乱的问题,代码展示...

2019-08-07 17:33:31 2456

原创 把json数据的id加到接口里id的后面

把json数据的id加到接口里id的后面遇到的问题思路注意事项代码片段展示遇到的问题在地图上点击一个marker,在弹出的信息里点击左边按钮传id1,点击右边按钮传id2,其中id1在接口中,id2在json中,怎么把id2绑在id1的后面呢,用~隔开。思路先获取接口的url,得到接口的信息列表,定义一个变量,用ajax的get请求去访问json,把返回来的数据给这个变量,然后for循环第...

2019-07-10 15:24:47 7301

原创 boostrap的应用

下载一个boostrap的案例,把html转成js来写前端页面 在html只写一个大容器 和引入的js css文件1.遇到左侧li标检收缩失效*把二级菜单折叠代码放到js里 而不是单独引用$(function () { $('#side-menu').metisMenu();});$(function () { $(window).bind("load resize", ...

2019-05-27 10:54:12 222

转载 html绑定事件失效的解决办法

事件委托,ajax载入新dom之前js就加载完了,事件当然没有绑定到新载入的dom上。举个例子,如果ajax载入了一个<span class="load"></span>这个时候如果你的js中写了(′.load′).on(′click′,function()dosomething...);事件是绑定不上去滴。你需要(&#x27;.load&#x27;...

2019-05-10 10:43:48 986

原创 HTML5 websocket学习

1.websocket简介实现客户端与服务器的数据交换变得简单,完成一次握手之后,可以直接进行数据传输,之前都是ajax轮询,在一段时间间隔内,由浏览器向服务器发送http请求,然http请求会带有很长的请求头,有用的只是一小部分,会造成宽带浪费。浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换...

2019-04-24 17:05:03 196

原创 leaflet.js学习错误总结

1.右击菜单出错*出错内容:创建一个右击事件,弹不出来右击菜单*解决办法:需要在marker中绑定classnamemarkOptions.icon.options.className = '右击类名'2.怎么通过右上角和左下角的经纬度来画矩形解决办法:用L.rectangle来画矩形 var bounds = [[berthObj.upper_Left_Latitude/6000...

2019-04-17 14:14:22 782

原创 DAY02java加强黑马自学

泛型使用在集合上Jdk5.0的新特性Jdk 1.1 1.2 1.3 1.4 5.0**泛型**枚举**静态导入**自动拆装箱**增加for循环**可变参数**反射5、泛型的简介*为什么要使用泛型——泛型一般使用在集合上**比如我现在把一个字符的类型的值放入到集合里面,这个时候,这个值放入到集合之后,失去本来的类型,只能是object类型,这个时候,我们想要进行类型转化,...

2018-11-28 19:11:14 161

翻译 DAY01加强版的java自学

1.Myeclipse的应用*创建一个工程:经常用java.project和web.project工程名称 不能使是中文选择依赖的jdk或者自带的*创建一个包 package命名方式: -cn.tes.test xx.xx.xx*在包里创建一个类class类的命名、;首字母大写 第二个也要大写比如:TestDemol*在类里面创建方法:Public void test1(...

2018-11-26 21:12:42 145

原创 欢迎和我一起学习

java自学day011.1变量常数-变量System.out.println(“100-”+price+&quot;=&quot;+(100-price));100是固定的1.2 变量-变量变量-变量 去双引号、定义一个变量amountSystem.out.println(amount+&quot;-&quot;+price+&quot;=&quot;+(amount-price));常用短语:Scanner in

2018-11-25 21:08:38 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除