- 博客(54)
- 收藏
- 关注
原创 2023.03.26 更新各大厂前端面试问题总结(22道题)
深度优先遍历(Depth-First-Search,DFS)和广度优先遍历(Breadth-First-Search,BFS)是图和树的两种遍历方式。观察者模式和订阅-发布模式都属于事件模型,它们都是为了解耦合而存在,但是它们之间还是有一些不同之处的:观察者模式中,主题(被观察者)和观察者之间是直接联系的,观察者订阅主题,主题状态发生变化时会直接通知观察者;而订阅-发布模式中,发布者和订阅者之间没有直接的联系,发布者发布消息到消息中心,订阅者从消息中心订阅消息。
2023-03-26 22:32:48
566
原创 2023.03.23 - 2023.03.26 更新各大厂前端面试问题总结(26道题)
你还记得 HTTP 是怎么定义的吗?HTTP 是一种超文本传输协议(Hypertext Transfer Protocol)协议,它 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范,那么我们看一下 HTTPS 是如何定义的HTTPS的全称是,它用来在计算机网络上的两个端系统之间进行安全的交换信息(secure communication),它相当于在 HTTP 的基础上加了一个Secure 安全。
2023-03-26 22:32:14
1182
原创 2023.03.08 - 2023.03.10 更新面试问题
回答链接:https://github.com/pro-collection/interview-question/issues/41。回答链接:https://github.com/pro-collection/interview-question/issues/42。回答链接:https://github.com/pro-collection/interview-question/issues/43。【JavaScript】43.未知高度和宽度元素的水平垂直居中的方案有哪些, 简单手写一下?
2023-03-10 08:17:05
431
原创 2023.03.08 更新面试问题
回答链接:https://github.com/pro-collection/interview-question/issues/35。回答链接:https://github.com/pro-collection/interview-question/issues/36。回答链接:https://github.com/pro-collection/interview-question/issues/11。
2023-03-10 08:12:42
507
原创 从零构建一个TS-Node项目
总体概括装包问题代码规范测试部分代码构建总结参考文章总体概括因为搭建的是node项目, 所以比前端项目搭建要简单很多。从以下因素考虑装包问题yarn配置项: .yarnrc 、.npmrc.gitignore代码规范eslintprettiercommititlint每次提交自动检测eslint\commitLint测试jest、ts...
2020-01-10 22:46:37
1881
原创 git 常用命令汇总
名词master: 默认开发分支origin: 默认远程版本库Index / Stage:暂存区Workspace:工作区Repository:仓库区(或本地仓库)Remote:远程仓库1、新建代码库在当前目录新建一个git代码仓库: git init新建一个目录,将其初始化为git代码仓库: git init [project-name]下载一个项目和他的整个代码历史: ...
2019-09-30 21:58:44
261
1
原创 基于Typescript 和 D3 五版本绘制树状图 tree() 绘制树状图
本示例是基于Typescript 和 D3 五版本绘制树状图。网上绝大多数都是D3 3版本,四版本也有一些示例,比较少,5版本几乎没有。这里是结合TS 和 D3 5版本的一个示例:直接上代码:/** * create by yanle * create time 2018-10-30 15:21 */import {hierarchy, tree} from "d3-hi...
2018-10-31 15:16:49
3621
1
原创 关于JS的触摸方法
touch事件调用js的touch事件,一般用于移动端的触屏滑动 $(function(){document.addEventListener("touchmove", _touch, false);}); function _touch(event){alert(1);}相关说明事件touchstart:当手指触摸屏幕时触发;即使已经有一个手指放在了屏幕上...
2018-09-13 10:52:10
823
原创 通过user_agent判断用户设备类型(移动还是PC)
首先需要安装模块: npm install ua-parser-js 具体使用如下:const UAParser = require('ua-parser-js');/** * 获取操作数据 * @param {Object} req 请求对象 * @return {Object} action对象 */function getActionData(req) { ...
2018-09-13 10:44:56
4211
原创 简单实现一个打字机效果
/** * 打字机效果功能 * @param opts * 入参1: element; * 入参2: str; * 入参3: speed; * 入参4: callback; */let index = function (opts) { let arr = []; for (let i = 0; i < opts.str.length; i++) { ...
2018-09-13 10:42:11
1748
原创 关于深拷贝和浅拷贝的实现
1、浅拷贝存在的问题var person={ name:'yanle', age:24, address:{ home:'home address', office:'office address' }, schools:['xiaoxue','daxue']};var programer={ languag...
2018-09-13 10:38:12
366
原创 移动端rem转换的办法和策略
1、通过css3设置html font-size标准来转换1rem等于html根元素设定的font-size的px值,假如我们在css里面设定下面的css。html{font-size:14px}那么后面的CSS里面的rem值则是以这个12来换算,例如设定一个div宽度为3rem,高度为2rem.则它换算成px为width:36px.height:24px,同理,假如一个设计稿为宽度...
2018-09-13 10:22:14
2327
1
原创 基于node的基础单元测试
具体源码请见github:基础单元测试1、所需要用到的模块- assert 是nodejs原生的断言- chai 是封装了的三方断言工具库- power-assert 也是封装了的三方断言工具库- mocha 专门用来测试的第三方框架,非常强大,推荐使用- istanbul 是用来做单元测试覆盖率的,非常强大好用2、首先建立一个基础的math.js的文件,写入一些需要测试的基础方法:mod...
2018-03-08 10:12:03
779
原创 multer使用示例
Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上非常高效。使用示例后端在router里面做如下配置const multer = require('multer');const result = require('../util/resul
2017-12-22 15:59:56
809
原创 fs模块基于async/await异步读写文件
1、读取文件: fs.readFile(filename,callback);const fs=require('fs');const path=require('path');const dir=path.resolve('../mkdir/index.html');console.log(dir);function read(dir){ return new Promi
2017-12-19 19:24:21
11999
原创 关于react绑定事件中的this
关于react事件中的this指针问题:如果我们在react时间中,如果不绑定this,那么方法执行的时候是找不到this的:比如下面的情况:import React from 'react'import Logo from '../../component/logo/logo'import {List,InputItem,WingBlank,WhiteSpace,Button}
2017-12-09 17:56:46
3050
原创 深入学习JS中Array对象与String对象
一、Array对象方法描述concat()连接两个或更多的数组,并返回结果。copyWithin()从数组的指定位置拷贝元素到数组的另一个指定位置中。(ES6)every()检测数值元素的每个元素是否都符合条件。fill()使用一个固定值来填充数组。(ES6)
2017-11-27 10:55:19
378
原创 深入javascript中Math算数对象与精确到小数位的向上舍入和向下舍入解决办法
JavaScript Math 对象算数Math对象用于执行数学任务。一、对象属性属性描述E返回算术常量 e,即自然对数的底数(约等于2.718)。LN2返回 2 的自然对数(约等于0.693)。LN10返回 10 的自然对数(约等于2.302)。LOG2E返
2017-11-24 17:03:23
1368
原创 JS实现倒计时精确到天数,时,分,秒或者精确到时、分、秒(小时数累加)
JS实现倒计时(天数,时,分,秒)剩余时间: timer('2018-11-20 12:00:00','day'); /** * 入参第一个为时间字符串,第二个参数为模式选择,如果传入'day',按天数倒计时到秒,不传值,按小时精确到秒 * @param timeStr * @param item */ funct
2017-11-15 17:05:23
4895
2
原创 promise封装node读写功能
最近在通过node简单的实现mock虚拟数据的方法,其实可以通过node的fs模块,来读取和写入我们本地的文件,来实现mock的功能
2017-11-09 16:56:42
1233
原创 基于node的websocket学习笔记三:scoket.io基础与利用scoket.io构建聊天程序示例
基于node的websocket学习笔记三:scoket.io基础与l利用scoket.io构建聊天程序示例
2017-11-05 20:49:38
307
原创 基于node的websocket学习笔记二:一个简单的聊天室程序与优化方案
基于node的websocket学习笔记二:一个简单的聊天室程序与优化方案
2017-11-05 19:35:03
506
原创 基于node的websocket学习笔记一:基础概念和第一个websocket应用demo示例
基于node的websocket学习笔记一:基础概念和第一个websocket应用demo示例
2017-11-05 14:27:25
2821
1
原创 promise 函数使用最佳实践体验
let checkLogin = function () { return new Promise(function (resolve,reject) { let flag = document.cookie.indexOf("userId")>-1?true:false; if(flag=true){ resolve({ status:0,
2017-10-26 21:11:46
501
原创 数字金额转繁体中文大写字符串
function intToChinese ( str ) { str = str+''; var len = str.length-1; var idxs = ['','十','百','千','万','十','百','千','亿','十','百','千','万','十','百','千','亿']; var num = ['零','壹','贰','叁','肆','伍
2017-10-23 16:11:14
1116
原创 微信JS-SDK 微信分享
首先要判断是不是PC端(其实这一步可以省略,因为只有在微信里面才能分享) function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone",
2017-09-28 12:18:07
254
原创 原生js获取cookie获取scrf防跨站攻击token
var _csrf = (/_csrf=[^;]+;?/i).exec(document.cookie);if(_csrf) { _csrf = _csrf[0].replace('_csrf=', '').replace(';', '');}
2017-09-27 15:50:11
1698
转载 体验异步的终极解决方案-ES7的Async/Await
阅读本文前,期待您对promise和ES6(ECMA2015)有所了解,会更容易理解。本文以体验为主,不会深入说明,结尾有详细的文章引用。第一个例子Async/Await应该是目前最简单的异步方案了,首先来看个例子。这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。var sleep = function (time) { return
2017-09-04 18:41:47
2425
转载 git创建分支
第一步:git branch 查看当前分支情况git branch //查看当前分支情况 第二步:git branch 分支名,新建一个自己的分支git branch 分支名 // 新建一个自己的分支 第三步:git checkout 分支名,切换到新建的分支git checkout 分支名 //切换到新建的分支
2017-08-31 13:28:50
336
原创 vue单页应用项目加入百度统计代码
在网上各种找不到vue项目加入百度统计的代码与实现:自己探索出了一套加入百度统计的办法,首先要明确一点,因为vue是单页应用,所以直接加百度统计代码到index.html的header里面是并没有什么用的,页面只加载一次。首先来看一下百度统计的官方API,_trackPageview用于发送某个指定URL的PV统计请求,通常用于AJAX页面的PV统计。
2017-08-28 20:31:23
13269
4
原创 js把数组拼接字符串
总所周知,直接传数组给后端,很定是有问题的,办法有三种:1、如果你是使用jquery 那么直接用$.param(str)就可以了$(document).ready(function(){ personObj=new Object(); personObj.firstname="John"; personObj.lastname="Doe"; personObj.age=50;
2017-08-10 12:23:28
4600
原创 修改radio和checkbox的默认样式
html5内置的input type='radio'和type='checkbox'单选和复选框是比较丑的,基本上遇到产品经理,是铁定过不去的,大多数的时候我们可以直接写自定义样式表,来替换input,不用input,通过jquery来控制dom,来模拟一个单选和复选的按钮功能:例如:.cbx{ display:inline-block; width:1.8rem; height:1.8r
2017-08-07 00:33:17
655
原创 获取页面宽高总结
网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的宽)网页正文全文宽:document.body.scrollWidth网页正文全文高
2017-07-29 23:28:01
291
原创 关闭selint
selint有助于我们检测se6代码,但是问题就是这个检测是在是太严格了,一个空格缩进都会报错解决办法1:直接删除selint npm uninstall selint --save-dev解决办法2:在webpack.base.config.js中,删除一下代码rules: [ { test: /\.vue$/, loa
2017-07-26 10:33:59
901
原创 thinkphp学习教程笔记1-请求和响应
一、获取请求对象首先在application定义一个index文件夹,这个就是我们的index前台模块,然后在定义个controller文件夹,这个文件夹就是放我们的控制器的,定义一个Index.php的控制器,这个控制器,就是对应我们主页的主控制器入口文件,启动服务之后,直接可以通过/public目录访问,也可以通过/public/index/index/index访问。这里简要说明一下
2017-07-07 14:52:40
440
转载 fiddler代理设置问题导致出现“The system proxy was changed,click to reenable fiddler capture”解决办法
1,安装好Fiddler后,我们一般是还抓不了数据的,需要在Fiddler和代理浏览器上做一些设置。在Fiddler, 点击rules——Fiddler Options ——选中这些选项就比如Firefox浏览器上通过如下步骤设置代理点击: 2,但是在我们设置IE的代理浏览器的时候会出现一些问题,就是没有权限设置代理的问题。IE的代理服务器无法设置的问题:
2017-07-04 14:31:10
74109
8
原创 关于thinkphp应用配置config.php无法加载的问题解决办法
这个问题出现在我配置thinkphp应用配置的时候,直接把配置仍在/conf/目录下面,配置文件取名config.php,然后在主函数调用的时候发现无法加载我自己的配置文件。查阅了很多资料,还是不知道问题出在哪儿,最后还是去官网看的最新的文档解决问题。我用的是thinkphp5.0.9版本,这个时候自己的应用配置已经不再/conf/目录下了,而是在application这个目录下面conf
2017-07-02 00:22:33
2907
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人