- 博客(36)
- 收藏
- 关注
原创 JavaScript语法基础—语句和表达式
Javascript基础关于本文首发 WowBar [GitHub][WowBar]作者: yvongyangTOC What: 什么是JS基础 Why: 为什么写JS基础 How: 怎么写序What: 什么是JS基础 JavaScript 我们都清楚是作为开发Web 页面脚本火起来的,其核心的语言特性就是在标准ECMA-262 中定义的,在该标准中定义的...
2019-12-15 23:06:25
831
原创 webpack 局部安装报错 Refusing to install package with name "webpack" under a package
npm ERR! code ENOSELFnpm ERR! Refusing to install package with name “webpack” under a packagenpm ERR! also called “webpack”. Did you name your project the samenpm ERR! as the dependency you’re inst...
2019-11-20 07:41:31
297
原创 柯里化(Currying)
/**柯里化(Currying),又称部分求值(Partial Evaluation),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术参考: https://www.jianshu.com/p/2975c25e4d71https://www.zhangxinxu.com/wordpress/2013/02/js-...
2019-08-31 16:37:29
240
原创 Node笔记二(异步I/O和异步编程)
异步I/O为什么要异步I/O用户体验—Js和UI渲染公用一个线程,同步方式获取JS资源会使UI停顿;资源分配—I/O与CPU计算是可以并行进行的,但是同步模式I/O会让后续任务等待,利用异步I/O,可以让单线程远离阻塞,更好的利用CPU.综上,异步I/O的目的是使I/O的调用不再阻塞后续运算,将原有等待I/O完成的这段时间分配给其余业务执行。操作系统的异步I/O异步/同步与阻...
2019-08-31 14:55:54
196
原创 删除Docker容器镜像的方法
停止所有的container,这样才能够删除其中的images:docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令:docker rm $(docker ps -a -q)查看当前所有imagesdocker images删除images,xxx为image iddocker rmi xxx想要...
2019-08-26 18:23:47
196
原创 Node笔记一(简介 & 模块)
架构Node Standard Library是Node标准库httpBuffernetstreamfseventsbufferNode Bindings沟通JS和C++的桥梁,封装V8和Libuv的细节,向上层提供基础API服务V8Libuv原文:https://yjhjstz.gitbooks.io/deep-into-n...
2019-08-11 19:12:33
2390
原创 SQL
1.关系数据库概述主流关系数据库商用oracle, SQL Server, DB2开源:MySQL, postgreSQL等数据模型-层次模型-网状模型-关系模型数据类型Bight, varchar(N), json…SQL: 结构化查询语言,用来防伪和操作数据库系统.语言定义了这么几种操作数据库的能力:DDL:Data Definition LanguageDDL...
2019-07-06 23:54:02
215
原创 Git stash clear后如何恢复
首先输入:git fsck --lost-found上述可以看到记录:dangling commit xxxidxxx,然后git show xxxxidxxxx,查看该id的具体内容找到你想要的id后输入git merge xxxxidxxxx
2019-06-27 18:27:33
3383
原创 使用基于nodejs实现的mysql client端访问mysql server端报错
client端创建连接:var mysql = require('mysql');var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'xxx', database : 'test'});connection.connect...
2019-06-21 00:38:29
581
原创 Node框架:Koa 和 Express
expresskoaexpress生命周期不确定/koa确定express内置eTag而koa没有express和koa实现计算返回时间中间件koa-connect扩展:
2019-06-09 00:27:32
828
原创 Babel
1.Babel简介Babel是一个工具链,主要用于将ECMAScript 2015+代码转换为当前和旧版浏览器或环境中的向后兼容版本的JavaScript。以下是Babel可以做的主要事情:转换语法Polyfill功能,目标环境中缺少的(通过@babel/polyfill实现)源代码转换// Babel Input: ES2015 arrow function[1, 2, 3].m...
2019-06-02 14:04:39
662
原创 最优(快)Js写法
测试js 相同实现某功能 最优(快)写法 和 一些例子的网站:http://jsben.ch/wQ9RUhttps://jsperf.com/测试js 相同实现某功能 最优(快)写法的Js:https://benchmarkjs.com/Js库 最优(快)写法替代实现功能:https://github.com/codemix/fast.js...
2019-05-27 22:42:49
335
原创 简单实现模版引擎
现在的模板引擎挺多的,语法也多样,像handlerbar.js, template.js, artTemplate等等,模板引擎流程如下:模板 -> 输入到模板引擎 -> 生成函数 -> 把数据当成参数,执行该函数 -> 输出结果其中原理都是离不开正则匹配出语句,并将语句放入数组中并执行。以下是两个简单实现template引擎的例子:template1: htt...
2019-05-26 15:54:38
311
原创 Http缓存
通过网络提取内容速度缓慢并开销巨大。较大的响应需要在客户端和服务器之间进行多次往返通信,延迟浏览器获得和处理内容的时间,增加访问者的流量费用。因此缓存并重复利用之前获取的资源的能力是性能优化的一个关键。http请求报文分为两部分:报文头部和数据主体。报文头部包含(cookie, 缓存信息等);数据主体即http想要传输的数据内容。http缓存相关的报文头有:字段名字段所属...
2019-05-19 23:40:23
200
原创 浏览器 "Script error"
先看浏览器中的错误:Error: foobar at new bar (<anonymous>:241:11) at foo (<anonymous>:245:5) at callFunction (<anonymous>:229:33) at Object.InjectedScript._evaluateOn (<ano...
2019-05-13 22:28:11
2455
原创 今日二三事
上午早起去办租赁备案,办完了回来激活了信用卡并稍微摸索了下,中午和室友一起订烤鱼和小龙虾,吃完都十二点多,午睡未睡着看了一会漫画和小说,去书房三点多,买了一杯咖啡,看看练习5老师给的连接,状态好的情况下还是可以看进去一些英文文档的。晚饭后继续看,边看边跟老弟聊天,他最近要学python,我打算也学一学,顺便带动下他。果真要早睡早起,而且有效时间记录还是有用的,虽然才记3天工作日的时间,但是差不多摸...
2019-05-12 00:12:53
203
原创 本地初始化项目推送到github
创建本地仓库文件夹,初始化本地仓库git initgit add .git commit -m "xxx"github上创建项目,不用初始化README, gitignore等文件添加远程仓库地址到本地仓库git remote add origin 远程仓库地址git remote -vpush本地仓库到远程git push -u origin master...
2019-05-08 19:42:55
511
原创 Web安全及XSS(一)
浏览器同源策略httpsCSPXSSX-XSS-ProtectionCSRFclickjackingX-Frame-Options书籍推荐:Web前端黑客技术揭秘 和 白帽子讲Web安全showcase15
2019-04-21 21:48:35
2256
原创 HTTPS加密及通信过程
Http & HttpsHttp: 超文本传输协议,位于应用层,常用于web浏览器和服务器之间的通信。Https: 位于安全层上的HTTP,在Http下面提供了一层传输级的密码安全层(SSL & TLS).不同点:http默认情况访问的是服务端80端口,https访问的是443端口(SSL&TLS是通过443端口承载);http直接传输命令,https...
2019-04-14 01:18:04
1361
原创 正则表达式
正则表达式:用于匹配字符串中字符组合模式。在JS中,正则表达式也是对象。与RegExp(exec和test方法),String(match, replace, search, split方法)结合使用。几个概念(keys):贪婪模式&非贪婪模式:匹配尽可能多的字符 以及 匹配尽量少的字符元字符:量词:分支/(a| b| c)/,字符集/[abc]/(罗列)相当于/[a-c]...
2019-04-08 23:53:54
283
原创 JS Number类型的数值转换
js有5种基本数据类型: undefined, Null, Boolean,Number, String(, Symbol).还有一种复杂类型数据: Object.Number()Number类型采用IEEE 754 64位格式存储,所以jS中的整数和浮点数都是以浮点数表示。浮点型数值占据的内存空间是整数型的两倍,所以JS会不失时机的把浮点数转换为整数。位操作符不直接操作64位的值,而是...
2019-03-24 00:41:18
3610
原创 前端单元测试(待补充)
单元测试的好处开发驱动方式:ATDD TDD BDD有哪些单元测试框架和方法node assertmocha前端测试框架,运行测试的工具should.jsKarma基于node.js的Javascript测试任务管理工具。JasmineTravis.CI提供持续集成服务,简称CI.绑定Github上的项目,有新代码就会自动抓取。提供运行环境,执行测试,完成构建,部署到服务器...
2019-03-17 00:12:09
362
转载 js大数相加
var vaule=1+1(答案是2)var vaule2=843529812342341234+236124361425345435(正确答案是1079654173767686669,但js相加得出的答案却是1079654173767686700)为什么?首先按照JavaScript中数字格式,能够表示整数范围是从-9007 199 254 740 992~9007 199 254 740...
2019-03-15 01:23:26
862
原创 JavaScript参数中的中括号
中括号代表 参数可选举例:buf.write(string[, offset[, length]][, encoding])例子中:第一个参数string没有中括号,意思是必须传的;offset[, length]]和 encoding在中括号内,为可选参数,即offset, length, encoding可传可不传;[, length]外面是offset,意味着没有传offset...
2019-03-14 10:02:01
2008
转载 Javascript中的this
我们知道JavaScript执行上下文中有三个重要属性:VO/AO和scope chain,以及this指针。我们今天就来看下this指针。 首先看看下面两个对this的概括: this是执行上下文(Execution Context)的一个重要属性,是一个与执行上下文相关的特殊对象。因此,它可以叫作上下文对象(也就是用来指明执行上下文是在哪个上下文中被触发的对象)。 &amp;nbsp;...
2018-07-21 18:40:12
773
原创 Js 执行上下文
Javascript有三种代码运行环境:Global, Function 和 Eval函数内部的执行环境。为了表示不同的运行环境,JavaScript中有一个执行上下文(Execution context,EC)的概念,也称执行环境。 当JavaScript代码执行的时候,执行流会进入到相应的执行环境,该执行环境被推入到一个环境栈中,函数执行之后,js引擎将其环境从栈中弹出,将控制权返回给之前的...
2018-06-30 22:29:15
355
原创 Apply()
Function.proptotype.apply(thisArg, [argsArray])thisArg 可选的。在 func 函数运行时使用的 this 值。argsArray 可选的。一个数组或者类数组对象,其中的数组元素将作为单独的参数传给 func 函数。call()方法的作用和 apply() 方法类似,只有一个区别,就是 call()方法接受的是若干个参数的列表,而...
2018-05-20 23:49:23
239
原创 js块级作用域
首先看一个常见的函数,该函数输出的是什么呢? 对的,就是5个6. 为什么会这样呢?因为setTimeout是个异步函数,每次循环的时候都会创建一个定时器,任务放到队列里,等主线程执行完才会执行定时器,这个时候循环跑完了,最后一次的 i = 5 + 1 = 6,所以输出5个6.for (var i = 1; i &lt;= 5; i++) { setTimeout(function t...
2018-05-17 23:30:43
171
原创 深度copy对象或数组,兼容浏览器
function cloneObj (obj) { var str, newobj = obj.constructor === Array ? [] : {}; if (typeof obj !== 'object') { return; } else if (window.JSON) { ...
2018-05-17 17:51:37
313
原创 数组去重的几种方法
1. 常见function distinct1(array){ var n = []; //一个新的临时数组 //遍历当前数组 for(var i = 0; i < array.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n....
2018-05-17 17:26:00
246
转载 Shim Polifill区别
Shim Shim 指的是在一个旧的环境中模拟出一个新 API ,而且仅靠旧环境中已有的手段实现,以便所有的浏览器具有相同的行为。主要特征:该 API 存在于现代浏览器中; 浏览器有各自的 API 或 可通过别的 API 实现; API 的所有方法都被重新实现; 拦截 API 调用,并提供自己的实现; 是一个优雅降级。 Polyfill polyfill 是一段代码(或者插件),...
2018-05-13 17:22:10
375
原创 es6 展开运算符
展开运算符不能用在对象当中,只能在可遍历对象中使用(iterables)。iterables的实现是依靠[symbol.iterator]函数,目前只有Array,Set,String内置[Symbol.iterator]方法,不过es7草案中已经加入了对象展开运算符。可用展开运算符展开数组,解构数组,拷贝数组,类数组对象变成数组等。 像拷贝数组一样,我们常常使用Array.Prototyp...
2018-05-08 16:13:34
575
转载 git 自动补全— ubantu & Mac
Ubantu:1. git install apt-get install git apt-get install git-core2. download git source code git clone git://git.kernel.org/pub/scm/git/git.git或者去 http://git-scm.com/download ...
2018-04-11 22:47:45
159
原创 inline-block的三个元素,width均为33.33%却不能并排显示
html:<div class="container"> <div class="col"> 1111 </div> <div class="col"> 2222 </div> <div class="col"
2018-03-25 17:38:41
2811
1
转载 css垂直居中(有些包含了水平居中)
html:<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</
2018-02-10 23:02:16
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人