自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023.03.26 更新各大厂前端面试问题总结(22道题)

深度优先遍历(Depth-First-Search,DFS)和广度优先遍历(Breadth-First-Search,BFS)是图和树的两种遍历方式。观察者模式和订阅-发布模式都属于事件模型,它们都是为了解耦合而存在,但是它们之间还是有一些不同之处的:观察者模式中,主题(被观察者)和观察者之间是直接联系的,观察者订阅主题,主题状态发生变化时会直接通知观察者;而订阅-发布模式中,发布者和订阅者之间没有直接的联系,发布者发布消息到消息中心,订阅者从消息中心订阅消息。

2023-03-26 22:32:48 478

原创 2023.03.23 - 2023.03.26 更新各大厂前端面试问题总结(26道题)

你还记得 HTTP 是怎么定义的吗?HTTP 是一种超文本传输协议(Hypertext Transfer Protocol)协议,它 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范,那么我们看一下 HTTPS 是如何定义的HTTPS的全称是,它用来在计算机网络上的两个端系统之间进行安全的交换信息(secure communication),它相当于在 HTTP 的基础上加了一个Secure 安全。

2023-03-26 22:32:14 1106

原创 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 372

原创 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 464

原创 从零构建一个TS-Node项目

总体概括装包问题代码规范测试部分代码构建总结参考文章总体概括因为搭建的是node项目, 所以比前端项目搭建要简单很多。从以下因素考虑装包问题yarn配置项: .yarnrc 、.npmrc.gitignore代码规范eslintprettiercommititlint每次提交自动检测eslint\commitLint测试jest、ts...

2020-01-10 22:46:37 1731

原创 git 常用命令汇总

名词master: 默认开发分支origin: 默认远程版本库Index / Stage:暂存区Workspace:工作区Repository:仓库区(或本地仓库)Remote:远程仓库1、新建代码库在当前目录新建一个git代码仓库: git init新建一个目录,将其初始化为git代码仓库: git init [project-name]下载一个项目和他的整个代码历史: ...

2019-09-30 21:58:44 196 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 3397 3

原创 关于JS的触摸方法

touch事件调用js的touch事件,一般用于移动端的触屏滑动 $(function(){document.addEventListener("touchmove", _touch, false);}); function _touch(event){alert(1);}相关说明事件touchstart:当手指触摸屏幕时触发;即使已经有一个手指放在了屏幕上...

2018-09-13 10:52:10 759

原创 通过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 4069

原创 简单实现一个打字机效果

/** * 打字机效果功能 * @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 1672

原创 关于深拷贝和浅拷贝的实现

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 218

原创 移动端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 2158 1

原创 基于node的基础单元测试

具体源码请见github:基础单元测试1、所需要用到的模块- assert 是nodejs原生的断言- chai 是封装了的三方断言工具库- power-assert 也是封装了的三方断言工具库- mocha 专门用来测试的第三方框架,非常强大,推荐使用- istanbul 是用来做单元测试覆盖率的,非常强大好用2、首先建立一个基础的math.js的文件,写入一些需要测试的基础方法:mod...

2018-03-08 10:12:03 744

原创 multer使用示例

Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上非常高效。使用示例后端在router里面做如下配置const multer = require('multer');const result = require('../util/resul

2017-12-22 15:59:56 728

原创 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 11770

原创 关于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 2990

原创 react-router4快速上手与配置示例

react-router4快速上手与配置示例

2017-12-08 14:38:03 2360

原创 mongoose创建数据结构,实现基本增删改查功能

mongoose操作数据库,数据库链接,数据库表结构映射定义,实现数据库增删改查功能。

2017-12-02 22:08:24 4704

原创 深入学习JS中Array对象与String对象

一、Array对象方法描述concat()连接两个或更多的数组,并返回结果。copyWithin()从数组的指定位置拷贝元素到数组的另一个指定位置中。(ES6)every()检测数值元素的每个元素是否都符合条件。fill()使用一个固定值来填充数组。(ES6)

2017-11-27 10:55:19 308

原创 深入javascript中Math算数对象与精确到小数位的向上舍入和向下舍入解决办法

JavaScript Math 对象算数Math对象用于执行数学任务。一、对象属性属性描述E返回算术常量 e,即自然对数的底数(约等于2.718)。LN2返回 2 的自然对数(约等于0.693)。LN10返回 10 的自然对数(约等于2.302)。LOG2E返

2017-11-24 17:03:23 1287

原创 局部安装webpack 命令行局部运行的方法

webpack命令行局部运行的方法

2017-11-16 16:10:41 2377

原创 JS实现倒计时精确到天数,时,分,秒或者精确到时、分、秒(小时数累加)

JS实现倒计时(天数,时,分,秒)剩余时间: timer('2018-11-20 12:00:00','day'); /** * 入参第一个为时间字符串,第二个参数为模式选择,如果传入'day',按天数倒计时到秒,不传值,按小时精确到秒 * @param timeStr * @param item */ funct

2017-11-15 17:05:23 4734 2

原创 promise封装node读写功能

最近在通过node简单的实现mock虚拟数据的方法,其实可以通过node的fs模块,来读取和写入我们本地的文件,来实现mock的功能

2017-11-09 16:56:42 1177

原创 基于node的websocket学习笔记三:scoket.io基础与利用scoket.io构建聊天程序示例

基于node的websocket学习笔记三:scoket.io基础与l利用scoket.io构建聊天程序示例

2017-11-05 20:49:38 256

原创 基于node的websocket学习笔记二:一个简单的聊天室程序与优化方案

基于node的websocket学习笔记二:一个简单的聊天室程序与优化方案

2017-11-05 19:35:03 471

原创 基于node的websocket学习笔记一:基础概念和第一个websocket应用demo示例

基于node的websocket学习笔记一:基础概念和第一个websocket应用demo示例

2017-11-05 14:27:25 2738 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 461

原创 数字金额转繁体中文大写字符串

function intToChinese ( str ) { str = str+''; var len = str.length-1; var idxs = ['','十','百','千','万','十','百','千','亿','十','百','千','万','十','百','千','亿']; var num = ['零','壹','贰','叁','肆','伍

2017-10-23 16:11:14 1048

原创 微信JS-SDK 微信分享

首先要判断是不是PC端(其实这一步可以省略,因为只有在微信里面才能分享) function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone",

2017-09-28 12:18:07 225

原创 原生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 1644

转载 体验异步的终极解决方案-ES7的Async/Await

阅读本文前,期待您对promise和ES6(ECMA2015)有所了解,会更容易理解。本文以体验为主,不会深入说明,结尾有详细的文章引用。第一个例子Async/Await应该是目前最简单的异步方案了,首先来看个例子。这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。var sleep = function (time) { return

2017-09-04 18:41:47 2397

转载 git创建分支

第一步:git branch 查看当前分支情况git branch //查看当前分支情况  第二步:git branch 分支名,新建一个自己的分支git branch 分支名 // 新建一个自己的分支  第三步:git checkout 分支名,切换到新建的分支git checkout 分支名 //切换到新建的分支

2017-08-31 13:28:50 303

原创 vue单页应用项目加入百度统计代码

在网上各种找不到vue项目加入百度统计的代码与实现:自己探索出了一套加入百度统计的办法,首先要明确一点,因为vue是单页应用,所以直接加百度统计代码到index.html的header里面是并没有什么用的,页面只加载一次。首先来看一下百度统计的官方API,_trackPageview用于发送某个指定URL的PV统计请求,通常用于AJAX页面的PV统计。

2017-08-28 20:31:23 13193 22

原创 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 4520

原创 修改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 614

原创 获取页面宽高总结

网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的宽)网页正文全文宽:document.body.scrollWidth网页正文全文高

2017-07-29 23:28:01 262

原创 关闭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 837

原创 thinkphp学习教程笔记1-请求和响应

一、获取请求对象首先在application定义一个index文件夹,这个就是我们的index前台模块,然后在定义个controller文件夹,这个文件夹就是放我们的控制器的,定义一个Index.php的控制器,这个控制器,就是对应我们主页的主控制器入口文件,启动服务之后,直接可以通过/public目录访问,也可以通过/public/index/index/index访问。这里简要说明一下

2017-07-07 14:52:40 376

转载 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 73525 8

原创 关于thinkphp应用配置config.php无法加载的问题解决办法

这个问题出现在我配置thinkphp应用配置的时候,直接把配置仍在/conf/目录下面,配置文件取名config.php,然后在主函数调用的时候发现无法加载我自己的配置文件。查阅了很多资料,还是不知道问题出在哪儿,最后还是去官网看的最新的文档解决问题。我用的是thinkphp5.0.9版本,这个时候自己的应用配置已经不再/conf/目录下了,而是在application这个目录下面conf

2017-07-02 00:22:33 2753

空空如也

空空如也

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

TA关注的人

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