
基础知识
文章平均质量分 77
前端精髓
公众号【前端精髓】
展开
-
统一登录passport介绍
前一段时间,因为在开发中使用到公司的统一登录平台passport,所以就自己找了很多资料,详细的学习了一下它们的原理以及实现过程,这里就着重分享一下“跨域共享cookie和跨域共享session”。场景:公司所有登陆都走的是统一一套pass环境,passport使用的就是cookie和session技术,来作为跟踪保存用户信登陆息的。这里有一个问题,比方说,公司的pass种cookie的时候,...原创 2019-12-05 22:27:47 · 5783 阅读 · 0 评论 -
Linux的基础知识
学习shell,通常会关联Linux,那么shell和Linux是什么关系了?shell是一个具备特殊功能的程序。介于使用者和Linux操作系统之核心程序(kernel)间的一个接口。为了对用户屏蔽内核的复杂性,也为了保护内核,以免用户误操作造成损害,在内核的周围建了一个外核-shell。用户向shell提出请求,shell解释并将请求传给内核。shell的版本分类查看当前系统sh...原创 2019-11-10 17:04:29 · 131 阅读 · 0 评论 -
12个常规前端面试题及小结
12个常规面试题,包含了html,css,javascript的基础知识转载 2017-11-24 22:04:23 · 382 阅读 · 0 评论 -
函数节流
浏览器中某些计算和处理要比其他的昂贵很多。例如,DOM操作比起非DOM交互需要更多的内存和CPU时间。连续尝试进行过多的DOM相关操作可能会导致浏览器挂起,有时候甚至会崩溃。尤其在IE中使用 onresize 事件处理程序的时候容易发生,当调整浏览器大小的时候,该事件会连续触发。在 onresize 事件处理程序内部如果尝试进行DOM操作,其高频率的更改可能会让浏览器崩溃。为了绕开这个问题,你可以...原创 2018-02-25 18:49:59 · 269 阅读 · 0 评论 -
parseInt和parseFloat的区别
parseInt 会忽略字符串前面的空格,直到找到第一个非空格字符,如果第一个字符是数字字符会继续解析第二个字符,直到遇到非数字字符停止parseInt可以识别各种整数格式,如:8进制,10进制,16进制,所以可以接收第二个参数表示要转换为多少进制var num = parseInt('0xAF', 16)//175面试题[1,2,3].map(parseInt)//[...原创 2018-03-23 20:30:49 · 14408 阅读 · 0 评论 -
ES6常用的解构赋值操作
解构嵌套的对象,注意,这时p是模式,不是变量,因此不会被赋值。如果p也要作为变量赋值,可以写成下面这样。let obj = { p: [ 'Hello', { y: 'World' } ]};let { p, p: [x, { y }] } = obj;x // "Hello"y // "World"p // ["Hello", {y: "W原创 2018-11-17 12:53:32 · 556 阅读 · 0 评论 -
获取一个月份有多少天
new Date(year, month, 0).getDate()通过 Date 构造函数传入年份、月份、零,然后通过调用获取日期函数即可获取当前月份有多少天new Date(2019, 2, 0).getDate()// 28new Date(2019, 3, 0).getDate()// 31...原创 2019-03-07 14:12:16 · 3440 阅读 · 2 评论 -
express设置跨域
跨域资源共享const express = require('express');const bodyParser = require('body-parser');const app = express();app.use(bodyParser.json())app.use((req, res, next) => { res.header('Access-Control-A...原创 2019-03-30 18:10:05 · 1741 阅读 · 1 评论 -
使用svg在表格内画斜线
可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。 SVG由W3C制定,是一个开放标准。原创 2019-04-11 11:35:03 · 2528 阅读 · 0 评论 -
express基本用法
expressconst express = require('express')const app = express()app.listen(8080, () => { console.log('port created successfully')})express会把所有的请求方式都作为方法挂载到app对象中,客户端发送请求并且会执行对应的回调函数con...原创 2018-03-04 18:17:27 · 14102 阅读 · 0 评论 -
CORS跨域资源共享
实现原理CORS背后的基本思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。验证机制比如一个简单的使用 GET 或 POST 发送的请求,它没有自定义的头部,而主体内容是text/plain。在发送该请求时,需要给它附加一个额外的 Origin 头部,其中包含请求页面的源信息(协议、域名和端口),以便服务器根据这个头部信息来决定是否...原创 2018-02-27 23:40:58 · 379 阅读 · 0 评论 -
6个经典的JavaScript报错分析
代码报错是经常发生的一件事,我们要确定是什么原因造成的,以及如何避免错误。1. Uncaught TypeError: Cannot read property该错误说明没有某个属性,一般是该属性前面的值是undefined或者是null的情况会出现。2. TypeError: ‘undefined’ is not a function执行对象中某个不存在的方法通常会报原创 2018-02-03 18:31:32 · 578 阅读 · 0 评论 -
数据类型转换题目
数据类型转换真的有点复杂,要正确理解原理,和区分异同点。原创 2017-11-21 18:48:17 · 874 阅读 · 0 评论 -
关于谷歌控制台存在的一个问题
数据类型转换原创 2017-11-25 12:48:49 · 631 阅读 · 0 评论 -
margin问题
margin塌陷问题就是上下两个相邻的元素之间在都设置了margin值得时候原创 2017-12-24 21:46:09 · 1317 阅读 · 0 评论 -
基本数据类型和引用数据类型的区别!
ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本 类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。原创 2017-12-15 18:11:10 · 642 阅读 · 0 评论 -
左右两栏布局写法
实现两栏布局:浮动布局,flex布局,grid布局原创 2017-12-28 22:56:23 · 8884 阅读 · 0 评论 -
为什么设置行高文字就能居中
在设置CSS样式的时候,我们常常设置行高为元素的高度,这样一来,文字就可以在这个元素里面垂直居中了,那这是为什么呢?今天就来分析原理。原创 2017-12-01 22:05:24 · 1951 阅读 · 1 评论 -
使用vue制作全选和不全选
这里主要介绍的是使用vue双向数据的一个指令v-modulediv id="app"> input type="checkbox" v-model="all">全选 input type="checkbox" value="HTML" v-model="msg">HTML input type="checkbox" value="CSS" v-model="msg"原创 2018-01-31 19:52:00 · 1212 阅读 · 0 评论 -
什么是BFC?
BFC是块级格式化上下文产生EFC有以下几种情况:float值不为noneoverflow值不为visibleposition值不为relative和static强调内容BFC有什么作用?BFC提供一个环境,HTML元素在在这个环境中按照一定的规则布局。两个BFC之间互不影响,BFC容器不会受里面元素的影响。使用BFC来解决margin问题在父子元素中,原创 2018-02-02 18:51:47 · 1186 阅读 · 0 评论 -
基本的websocket使用
WebSocket是一种在单个TCP连接上进行全双工通信的协议。原创 2019-04-08 17:38:05 · 9726 阅读 · 0 评论 -
nginx安装教程
环境:centos+yum创建一个文件/etc/yum.repos.d/nginx.repovi /etc/yum.repos.d/nginx.repo输入下面的内容[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck...原创 2019-04-21 09:24:40 · 280 阅读 · 0 评论 -
解决安卓键盘收起表单无法失去焦点问题
<template> <div class="home"> home <input v-model="msg" type="text" class="username input-hook"> <div> {{ msg }} </div> <...原创 2019-05-31 17:39:00 · 3158 阅读 · 0 评论 -
v8的垃圾回收机制
V8主要的垃圾回收算法垃圾回收策略主要基于分代式垃圾回收机制。垃圾回收算法中按对象的存活时间将内存的垃圾回收进行不同的分代,然后分别对不同分代的内存施以更高效的算法。在V8中,主要将内存分为新生代和老生代两代。新生代中的对象为存活时间较短的对象,老生代中的对象为存活时间较长或常驻内存的对象。Scavenge算法在分代的基础上,新生代中的对象主要通过Scavenge算法进行垃圾回收。而在Sc...转载 2019-06-02 08:51:48 · 2600 阅读 · 0 评论 -
egg.js基本用法
而 Egg 选择了 Koa 作为其基础框架,在它的模型基础上,进一步对它进行了一些增强。,egg是按照指定的目录结构去搭建web服务。初始化项目$ mkdir egg-example$ cd egg-example$ npm init$ npm i egg --save$ npm i egg-bin --save-dev为了提升研发体验,我们提供了便捷的方式在本地进行开发、调试、单...原创 2019-06-11 17:15:15 · 3979 阅读 · 0 评论 -
express基本原理
了解 express 原理之前,你需要先掌握 express 的基本用法。关于 express 的介绍请看 express 官网。基本结构先回顾一下 express 使用的的过程,首先是把模块倒入,然后当做方法执行,在返回值中调用 use 处理路由,调用 listen 监听端口。const express = require('express')const app = express()...原创 2019-06-24 13:31:47 · 2313 阅读 · 0 评论 -
详细理解script标签
说到script标签,大家耳熟能详的就是src属性了,但是你是否记得它有一些其它属性呢?接下来我仔细盘点,看看是否知道它们的含义。原创 2019-07-06 17:45:39 · 10590 阅读 · 0 评论 -
设计模式之状态模式
状态模式是一种非同寻常的优秀模式,它也许是解决某些需求场景的最好方法。虽然状态模式并不是一种简单到一目了然的模式,但你一旦明白了状态模式的精髓,以后一定会感谢它带给你的无与伦比的好处。状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变。我们来想象一个场景,路口的红绿灯。它有三种状态,可以不断的轮询切换。根据这个交通规则,我们通过代码的形式来描述。class Lig...原创 2019-08-31 11:46:34 · 297 阅读 · 0 评论 -
原型模式
使用构造函数的主要问题,就是每个方法都要在每个实例中重新创建一遍。function Animal () { this.sayName = function () { console.log('动物') }}let dog = new Animal()let cat = new Animal()每个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向...原创 2019-08-31 21:06:28 · 330 阅读 · 0 评论 -
Hexo博客无法显示样式和图片的问题
设置静态文件根目录_config.yml中有个url和root参数如果你部署的地址是http://yoursite.com/child,需要设置下面两个参数。url: 'http://yoursite.com/child' // 部署的域名root: '/child/' // 部署的根目录设置资源文件夹资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、C...原创 2019-06-05 11:21:55 · 7412 阅读 · 0 评论 -
设置移动端1像素边框
设置下边框.border_1px { position: relative;}.border_1px:before { content: ''; position: absolute; bottom: 0; height: 1px; width: 100%; background-color: #000; transform-origin: 50% 0%;...原创 2019-05-18 19:53:00 · 585 阅读 · 0 评论 -
关闭防火墙
在centos系统执行下面命令systemctl stop firewalld.servicesystemctl disable firewalld.service原创 2019-04-21 17:42:31 · 309 阅读 · 0 评论 -
JS转译HTML字符的方法
let escape = (html) => { return String(html) .replace(/&(?!\w+;)/g, '&') .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"') .replace(/'...原创 2019-04-17 16:02:25 · 1854 阅读 · 0 评论 -
JS空格分隔手机号码
let phone = '88888888888'let res = phone.replace(/^(.{3})(.*)(.{4})$/, '$1 $2 $3')console.log(res) // 888 8888 8888原创 2019-04-17 16:36:52 · 4815 阅读 · 0 评论 -
git配置免密码登录
首先需要保证git服务器安装 了git,或者通过下面命令安装yum install git -ygit服务器看看是否已经生产过公钥,默认路径在这里/home/git/.ssh,或者通过下面命令生成公钥ssh-keygen -t rsa进入存放公钥的文件夹/home/git/.ssh,可以看到有三个文件authorized_keys id_rsa id_rsa.pub如果没有a...原创 2019-04-26 16:55:29 · 1760 阅读 · 0 评论 -
Linux命令速查表
其中涵盖了包括文件、进程管理、文件权限、SSH、搜索、系统信息、压缩、网络、安装等方面的常用命令。转载 2019-04-18 16:19:41 · 752 阅读 · 0 评论 -
前端学习资源整理
用心记住所有API是不可能的。但是用最全的资料可以快速找到你想要的内容。原创 2019-04-19 17:50:58 · 212 阅读 · 0 评论 -
docker安装
安装yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum install docker-ce docker-ce-cli containerd.io...原创 2019-04-20 11:23:34 · 123 阅读 · 0 评论 -
阻止IOS上拉出现网址的效果
给最外层元素加上样式<style>.layout{ position: fixed; top: 0; bottom: 0; width: 100%; height: 100%; overflow: hidden;}</style>原创 2019-05-21 15:13:17 · 390 阅读 · 0 评论 -
node通过session登录验证
通过cookie实现浏览器和服务器的状态记录原创 2019-04-13 16:57:39 · 1429 阅读 · 0 评论