自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 JSON与JS对象的区别小记

JSON与JS对象的区别JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。var obj = {a: 'Hello', b: 'World',c:11}; //这是一个对象,键名也是可以使用引号包裹的,var json = '{"a": "Hello", "b": "World","c":11}'; //这是一个 JSON 字符串,本质是一个字符串JSON和JS对象互转JSON字符串转JS对象var obj = JSON.parse('{"a":

2020-08-03 17:07:20 242

原创 算法

leetcode整数反转let x = -123;// number->string->array->string->number->judgelet reverse = function(x) { let res = []; let str = x.toString(); //字符串也有length属性 for(let i = ...

2020-04-20 20:33:23 387

原创 react脚手架安装避坑

直接在~目录下sudo npm install -g create-react-app(然后查看/usr/local/bin/create-react-app与/usr/local/lib/node_modules/create-react-app/index.js)然后在自己的开发目录下create-react-app my-app即可...

2019-11-28 19:44:56 544

原创 七牛云面试

Vue中的懒加载方式一:Vue工厂函数异步解析组件,Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供将来重新渲染使用。Vue.component('async-example', function (resolve, reject) { setTimeout(function () { // 向 `resolve` 回调传递组件定义 reso...

2019-10-14 22:19:45 474

原创 react-router的原理

底层是通过history来实现的(go, back, goforward),html5的History对其进行一层包装,暴露了一些API给我们。replaceState()和pushState()区别:pushState()是把浏览器的会话压入栈中,会使得History.length加1,而replaceState是替换当前的这条会话历史,因此不会增加History.length。配合win...

2019-10-14 08:05:48 274

原创 antd中的DVA

数据的改变发生通常是通过用户交互行为或者浏览器行为(如路由跳转等)触发的,当此类行为会改变数据的时候可以通过dispatch发起一个 action,如果是同步行为会直接通过Reducers改变State,如果是异步行为(副作用)会先触发Effects然后流向Reducers最终改变State,所以在 dva 中,数据流向非常清晰简明,并且思路基本跟开源社区保持一致(也是来自于...

2019-10-13 23:12:22 369

原创 CSS如何画扇形

效果图如下:用border + 宽高为0可以画正方形<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"&g...

2019-10-11 23:23:32 1404

原创 React V7版本一些新的生命周期函数

Mount阶段:constructor()static getDerivedStateFromPro ps():返回一个对象来更新 state,如果返回 null 则不更新任何内容。(componentWillMount() / UNSAFE_componentWillMount()//被废弃)render()componentDidMount()Update阶段:...

2019-10-11 22:21:52 118

原创 龙渊科技电话面试

async…await 结合 Promise使用如何捕获错误金山打字游戏的逻辑(见红宝书)用过哪些babelbabel的原理babylon 将 ES6/ES7 代码解析成 AST@babel/traverse 对 AST 进行遍历转译,得到新的 AST新 AST 通过@babel/generator 转换成 ES5ant-design中的UI插件:DVAnode.js中间件的原理...

2019-10-10 21:09:27 214

原创 Cookie补充的一些知识

Cookie的有效期Cookie的maxAge决定着Cookie的有效期,单位为(Second)。Cookie中通过getMaxAge()与setMaxAge(int maxAge)读写maxAge属性。如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的 Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览...

2019-10-04 20:43:48 636

原创 字节跳动面试

一面:线程和进程的区别进程是资源分配的基本单位,也是调度运行的基本单位。线程是进程中的每一个执行单元,当一个java程序启动时,就会产生一个进程,该进程会默认创建一个线程,称为主线程。单线程进程的执行过程在宏观上是线性的,在微观上也只有单一的执行过程,而多线程进程的执行过程在宏观上是线性的,在微观上却有多个执行过程。进程有自己的地址空间,而线程没有自己的地址空间,共享它所属进程的资源。...

2019-10-04 18:00:28 713

原创 如何让0.1+0.2 === 0.3

// function f(a,b) {// return Math.abs(a - b) < Number.EPSILON;//es6里面有个属性:Number.EPSILON = 2^-52// //如果0.1+0.2 - 0.3的差值在Number.EPSILON的误差范围内,就可以认定 0.1+0.2 = 0.3// //通过Number类型的toFi...

2019-10-04 13:37:04 724

原创 老虎面试

1.http1.0和http2.0 的区别http1.0利用文本与服务器进行交互,而http2.0的基本协议单位是二进制帧http2.0只建立一次连接,即一轮三次握手,实现多路复用。http2.0会压缩消息头http2.0支持服务器推送数据的功能2.代码题let { a: b, c: d } = { a: 1, b: 2, c: 3, d: 4};console.log(a +...

2019-10-04 13:35:42 341

转载 手动实现call、apply、bind

call的实现:思路很简单:1、将函数设置为对象的属性:obj.fn = func 2、执行函数:obj.fn() 3、删除函数:delete obj.fn注意的地方:4、this 参数可以传null或者undefined,此时 this 指向 window 5、this 参数可以传基本类型数据,原生的 call 会自动用 Object() 转换 6、函数是可以有返回值...

2019-09-29 22:02:50 467

原创 字节跳动面试

一面:线程和进程的区别sort()用到的排序算法求一个数组中的第K大个元素, 并说明算法复杂度?[3,2,4,7,10,23]k=3 ret=7数据库中的索引 事务(原子 隔离 一致 持久性)二面:Symbol有哪些用途Vue中数据双向绑定的原理防抖和节流的实现源码position:static(position:absolute在找有定位属性的父级元...

2019-09-28 11:21:07 426

原创 Websocket协议

(1)websocket是HTML5的一个新协议,它支持服务端向客户端传递信息,实现浏览器和服务器之间的双工通信。(2)websocket相对与HTTP协议来说是一个持久化的协议。HTTP获取数据的时候,需要不断的问服务器是否有我要的数据?如果有数据就返回数据,没有就过一段时间再次询问服务器否有我需要的数据。而websocket 呢,它只建立一次连接,那么这个连接就不会断,服务器端如果有数据的...

2019-09-24 14:42:32 108

原创 webpack相关总结

webpack相关总结1. 什么是webpack?它和grunt和gulp有什么不同?Webpack是一个模块打包器,它可以递归的打包项目中的所有模块,最终生成几个打包后的文件。它和其它的工具最大的不同在于他支持code-splitting、模块化(AMD,ESM,CommonJS)、全局分析。2. 什么是bundle?什么是chunk?什么是module?bundle是由webpack打...

2019-09-19 13:59:24 141

原创 CVTE面试

(1)let 和constconsole.log(val);//变量声明提升到前面,但赋值不会提升,故为Undefinedif(true){ var val = 12;}//等价于var val;console.log(val);if(true){var val = 12;}console.log(val);//不提升,报错Errorif(true){ ...

2019-09-19 13:52:48 2631

原创 Map和Set相关以及如何去重数组

数组去重的方法:(1).数组的扩展运算符...let arr = [1,2,3,4,5,3,2,1,3,4,3];console.log( arr);let s = new Set(arr);// 将set结构数据变成数组// 数组的扩展运算符...let newArr = [...s];console.log( s);console.log(newArr);(2...

2019-09-19 13:52:26 371

原创 JavaScript实现各种排序

快速排序:思路:  (1)在数组中,选择一个元素作为基准值(pivot)。 (2)所有小于基准值的元素,都移到基准值的左边;所有大于基准值的元素,都移到基准值的右边。 (3)对基准值左边和右边的两个子集,不断递归地进行排序,直到所有子集只剩下一个元素为止。var quickSort = function(arr) { if (arr.length <= 1) ...

2019-09-19 13:52:13 330

原创 document.domain详解

不同的页面资源可能放在不同的服务器程序上面,这些服务器域名不同,但都有相同的上级域名,比如id.qq.com和www.qq.com,它们都有相同的上级域名qq.com。可以手动将它们的document.domain设置相同,这样的话它们就处在同域名的服务器上,如果它们的协议、端口再一样的话,那它们之间就可以跨域访问。只适合两个iframe之间的跨域iframe的优点:内联框架...

2019-09-19 13:51:59 2173

原创 flex布局相关

定义在容器上的属性:justify-content属性定义了项目在主轴上的对齐方式。flex-start(默认值):左对齐flex-end:右对齐center: 居中space-between:两端对齐space-around:每个项目两侧的间隔相等align-items属性定义项目在交叉轴上的对齐方式。flex-start:交叉轴的起点对齐。flex-end:交叉轴的终点...

2019-09-19 13:51:45 128

原创 url与对象之间的转换

1.对象转url字符串var obj = { a: 1, b: 2};//a=1&b=2function jsonToString(obj){ let arr = []; for(let key in obj){ arr.push(key + "=" + obj[key]); } console.log(arr);...

2019-09-19 13:51:26 1042

原创 记住的一些方法

Q1:let obj = { "4be701b6": { "query stopped result": {"value": "stopped", "weight": null, "time": 1558238509.262652}, 'query active result':{'value':'test','weight':1,'time':1}...

2019-09-19 13:50:57 64

原创 每日2道算法题

leetcode整数反转let x = -123;// number->string->array->string->number->judgelet reverse = function(x) { let res = []; let str = x.toString(); //字符串也有length属性 for(let i ...

2019-09-19 13:50:44 148

原创 作业帮笔试

一:单行输入:1 1(输入是"1 1")2while(line = relinesadline()){ var lines = line.split(" "); var a = parseInt(lines[0]); var b = parseInt(lines[1]); print(a + b);}二:多行输入:(例子未定)var n = par...

2019-09-19 13:49:48 587

原创 大数相加

Number.MAX_VALUE // 1.7976931348623157e+308Number.MAX_SAFE_INTEGER // 9007199254740991Number.MIN_VALUE // 5e-324Number.MIN_SAFE_INTEGER // -9007199254740991function f(a,b) { var a = a.split...

2019-09-10 10:58:16 110

原创 浮动

float:left 先向左浮动,后向上浮动(right一样的道理)1.如果浮动元素的上一个兄弟元素是正常元素,则浮动元素跑不上去<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>浮动</title> ...

2019-09-10 09:34:57 107

原创 href和src

href: 指定网络资源的位置,目的不是为了引用资源,而是为了建立联系,让当前标签能够链接到目标地址。src: source(缩写),为了引用资源,指向外部资源的位置,指向的内容将会应用到文档中当前标签所在位置。区别:1 请求资源类型不同(1)href 指向网络资源的位置,建立和当前元素(锚点)或当前文档(链接)之间的联系。(2)src 是将外部资源下载并解析到页面,比如 J...

2019-09-10 00:52:10 587

原创 伪类与伪元素

伪类,更多的定义的是状态。常见的伪类有 :link、:visited、 :hover、 :active、 :not、:first-child、:last-child、:required、:valid、:invalid等等。伪元素,不存在于DOM树中的虚拟元素,它可以像正常的html元素一样定义css,但无法使用JavaScript获取。常见伪元素有 ::after、::before、::fir...

2019-09-10 00:16:19 569

原创 前端模块化、防抖和节流

-----------------------------------------------前端模块化进化史:(1)在没有模块化的年代里,前端是把HTML css javascript写到一个HTML文件里面,这样的话代码耦合度,项目维护起来非常困难。(2)把css javascript代码分开写,通过script、link标签的方式去导入css、javascript文件,缺点...

2019-08-27 00:41:01 154

原创 块级元素、行内元素、行内块级元素的特点

1.块级元素:(1)独自占据一行,故默认宽度是容器的100%。(2)可以设置宽、高、行高、内外边距。(3)可以容纳行内元素和其他块级元素。注:文字类的块级元素不能容纳块级元素,例如<p>/<h1>~<h6>/<dt>2.行内元素:(1)会和相邻的行内元素排成一行。(2)设置宽、高无效,默认宽高是其自身内容的宽高。(3)...

2019-07-25 14:39:06 5005

转载 CSS中元素居中的方式总结

一:水平居中(margin:0 auto;)推荐使用<!DOCTYPE HTML><html><head> <style> *{ margin: 0; padding: 0; } .box{ width: 400p...

2019-03-06 16:11:37 244

原创 C语言循环队列&初始化&入队&出队&判队满&判队空&求队列元素个数&求队列长度

为了解决一般队列“假溢出”的问题,出现了循环队列,即最后一个元素的后继是第一个元素。在循环队列中,我用的是少用一个元素空间的方法来区别队空和队满。队空:q-&gt;front = q -&gt;rear;队满:(q-&gt;rear+1)%MAXSIZE = q-&gt;front,具体代码如下:#include &lt;stdio.h&gt;#include &lt;malloc...

2019-02-25 15:44:13 8896 4

原创 C语言数组作为函数参数

一:数组元素作为函数的实参数组元素就是变量,与普通变量没有区别,将数组元素传送给形参,实现单向的值传递。#include &lt;stdio.h&gt;float max(float x,float y){ if(x &gt; y) return x; else return y;}int main(){ int a[6] = {3,2,1,4,9,0}; int m ...

2019-02-24 20:24:59 66434 4

原创 C语言实现判空栈&顺序栈的初始化&进栈&出栈&取栈顶元素

栈是一张特殊的线性表,既可采用顺序存储结构存储,也可以采用链式存储结构存储。下面介绍采用顺序结构存储的栈的相关基本操作,用一个int top 来作为栈顶的指针,指明当前栈顶的位置,空栈时s -&gt; top = -1,入栈时s -&gt;top ++;出栈时s -&gt; top --;将data和top封装在一个结构中。代码如下:#include &lt;stdio.h&gt;#d...

2019-02-24 18:12:42 10255 3

原创 扩展运算符的应用

扩展运算符是三个点(...),主要用于展开数组,将一个数组转为参数序列。下面是扩展运算符的应用情况;1. 代替数组的apply方法:求数组最大元素问题:(1)用es5中的apply方法将数组转为参数序列,然后用Math.max()求数组中的最大元素:function f(x,y,z){ console.log(Math.max(x,y,z));}var args =...

2019-02-18 21:59:10 408

原创 JS中的事件处理程序

什么是事件和事件处理程序?事件就是用户或浏览器执行的某些动作,诸如click,load,mouseover等,都是事件的名字,而响应某个事件的函数就是事件处理程序,事件处理程序的名字是在事件的名字前面加上“on”。例如:onclick是click事件的事件处理程序,onload是load事件的事件处理程序。总共有4种事件处理程序,介绍如下:HTML事件处理程序:写法一:&lt;inp...

2019-02-11 16:11:52 540

原创 JS中的this的指向

JS中的this的指向是个令人头疼的问题,看了好多博客,自己总结一下大家也看一下:什么是this?this是JavaScript语言的一个关键字,它是函数运行时自动生成的一个内部对象,只能在函数内部调用最重要的一句话:this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁最终调用函数,this就指向谁。情况一:所有在全局作用域中定义的变量和函数都是window对象的属...

2019-01-26 18:10:52 207

原创 JS正则贪婪与吝啬,分组

(一):贪婪:正则在匹配的时候,,默认匹配的是最长的结果吝啬:禁止贪婪,在量词后面加上?,表示返回最短的结果let reg = /&lt;p&gt;.*?&lt;\/p&gt;/;//匹配任意个任意字符,.代表任意的意思let str = "&lt;p&gt;the first p&lt;/p&gt;&lt;p&gt;the second p&lt;/p&gt;";let o

2018-12-30 10:37:19 384

空空如也

空空如也

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

TA关注的人

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