javascript
文章平均质量分 68
itKingOne
热爱生活,热爱运动,活出精彩,活出新高度
展开
-
node下使用UglifyJS压缩合并JS文件
现在UglifyJS的最新版本为 2.8.13,主要功能为JS的压缩和合并,下面直接进入教程:安装:npm install uglify-js -g将uglifyjs安装为全局变量,方便我们在任何地方使用。下面是shell命令的中文解释:* source-map [string],生成source map文件。* –source-map-root [string], 指定生成原创 2017-03-17 14:12:36 · 4016 阅读 · 0 评论 -
Page Visibility API页面可见性事件监听的兼容性写法
考虑到这个API在各个版本各个类型的浏览器表现有所不同,所以小邹下面给大伙出一个兼容性的写法:// 设置隐藏属性和改变可见属性的事件的名称var hidden, visibilityChange; if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support ...原创 2018-11-01 10:44:34 · 2264 阅读 · 0 评论 -
前后端如何高效的并行开发
前后端如何高效的并行开发沪漂程序员的生活史 2018-11-06 10:57:23开发效率一直都是初创公司的首要标准,能够更快的完成客户或者产品需求的研发对公司来说也是一笔不小的财富,当然你的工资也可能水涨船高,小邹总结了以下几点,希望对大家有所帮助: 1、前后端分离前端与后端的分离,能使前端的开发脱离后端的开发模式,拥有更大的自由度,以此便可做前端工程化、组件化、单页面应...原创 2018-11-06 10:59:28 · 2030 阅读 · 0 评论 -
使用WebSocket进行跨域数据请求
Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。WebSocket和HTTP都是应用层协议,都基于 TCP 协议。但是 WebSocket 是一种双向通信协议,在建立连接之后,WebSocket 的 server 与 client 都能主动向对方发送或接收数据。同时,WebSocket 在建立连接时需要借助 HTTP 协议,连接建立...原创 2018-11-07 09:55:48 · 15271 阅读 · 2 评论 -
node进程管理器神器——PM2(值得收藏)
PM2作为小邹一直在使用的node进程管理软件,我自己心里是感觉非常方便,它在解决node中间层进程异常方面有着不小的功劳,下面小邹就它的两种使用模式给大伙讲解一下(文章同步自小邹的头条号:沪漂程序员的生活史):运行模式fork_mode cluster_modepm2 start app.js 默认开启的是fork模式,pm2 start app.js -i max 是开启clu...原创 2018-11-12 17:00:18 · 1371 阅读 · 0 评论 -
寥寥数笔带你洞悉JavaScript深拷贝和浅拷贝
(内容同步自小邹的头条号:沪漂程序员的生活史)对象和数组的拷贝对小邹来说一直都是一个比较模糊的概念,一直有点一知半解,但是在实际工作中又偶尔会涉及到,有时候还会一不小心掉坑里,不知道大家有没有同样的感受,因此,准备对js对象和数组拷贝一探究竟。提到js的对象和数组拷贝,大家一定会想深拷贝和浅拷贝,但是为什么会有深拷贝和浅拷贝呢?下面就让我简单介绍一下为什么拷贝会有深浅之分以及有什么区别?原...原创 2018-11-22 09:44:36 · 272 阅读 · 0 评论 -
ES6核心知识点概括说明,集大成者(收藏不看则亏系列)
(内容同步自小邹的头条号:沪漂程序员的生活史)前言ES6 虽提供了许多新特性,但我们实际工作中用到频率较高并不多,根据二八法则,我们应该用百分之八十的精力和时间,好好专研这百分之二十核心特性,将会收到事半功倍的奇效 一、开发环境配置这部分着重介绍:babel 编译 ES6 语法,如何用 webpack 实现模块化。1.babel为啥需要 babel?ES6 提供...原创 2018-12-05 10:28:28 · 556 阅读 · 0 评论 -
彻底理解javascript中的this,面试必备(值得收藏)
(内容同步自小邹的头条号:沪漂程序员的生活史)this作为js里面基础而又重要的一个角色,一直以来都被面试官所倚重,根据小邹自己的面试经历和网上的一些调查,相信80%的面试官都会面试这个特殊的对象,今天小邹总结了一下,让大伙能够一劳永逸,每次只要来翻看这篇文章就够了。一:全局执行console.log(this);// Window可以看出在全局作用域中 this 指向当前的全局...原创 2018-12-04 09:48:32 · 392 阅读 · 0 评论 -
如何优雅的处理前端异常(前端高阶必备)
(内容同步自小邹的头条号:沪漂程序员的生活史)前端一直是距离用户最近的一层,随着产品的日益完善,我们会更加注重用户体验,而前端异常却如鲠在喉,甚是烦人。如何更好的处理前端异常有助于我们问题的排查和代码的规范化。 一、为什么要处理异常?异常是不可控的,会影响最终的呈现结果,但是我们有充分的理由去做这样的事情。增强用户体验; 远程定位问题; 未雨绸缪,及早发现问题; 无法...原创 2018-12-11 14:22:52 · 2064 阅读 · 0 评论 -
web前端知识体系精简
(内容同步自小邹的头条号:沪漂程序员的生活史)Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查...原创 2018-12-19 10:03:25 · 367 阅读 · 0 评论 -
详解es6 class语法糖中constructor方法和super的作用
首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的。function Point(x, y) { this.x = x; this.y = y;}Point.prototype.toString = function() { return '(' + this.x + ',' + this.y + ')'...原创 2018-12-25 14:23:33 · 1254 阅读 · 0 评论 -
前端面试大全:ES6 知识点及常考面试题
(内容同步自小邹的头条号:沪漂程序员的生活史)这一部分我们将开始学习ES6相关的知识内容。 var、let 及 const 区别涉及面试题:什么是提升?什么是暂时性死区?var、let 及 const 区别?对于这个问题,我们应该先来了解提升(hoisting)这个概念。console.log(a) // undefinedvar a = 1从上述代码中我们...原创 2019-01-11 10:01:50 · 1999 阅读 · 0 评论 -
前端面试大全:JS 异步编程及常考面试题
(内容同步自小邹的头条号:沪漂程序员的生活史)这一部分小邹将会主要介绍异步编程这一块的内容,鉴于异步编程是 JS 中至关重要的内容,所以小邹打算用三篇文章来介绍异步编程涉及到的重点和难点,同时这一块内容也是面试常考范围,希望大伙能重视。 并发(concurrency)和并行(parallelism)区别涉及面试题:并发与并行的区别?异步和这小节的知识点其实并不是一个概念...原创 2019-01-15 14:29:52 · 3021 阅读 · 0 评论 -
前端面试大全:手写 Promise
(内容同步自小邹的头条号:沪漂程序员的生活史)在上一篇文章中我们了解了 Promise 的一些易错点,那这一篇文章,我们会通过手写一个符合 Promise/A+ 规范的 Promise 来深入理解它,并且手写 Promise 也是一道大厂常考题,在进入正题之前,推荐各位去网上找下Promise/A+规范,这样才能更好地理解这个章节的代码。 实现一个简易版 Promise在完成符...原创 2019-01-15 14:33:35 · 2389 阅读 · 0 评论 -
前端面试大全:JS 进阶知识点及常考面试题
(内容同步自小邹的头条号:沪漂程序员的生活史)在这一篇文章中中,小邹将会介绍一些原理相关的知识,不会解释涉及到的知识点的作用及用法,如果大家对于这些内容还不怎么熟悉,推荐先去学习相关的知识点内容再来学习原理知识。 手写 call、apply 及 bind 函数涉及面试题:call、apply 及 bind 函数内部实现是怎么样的?首先从以下几点来考虑如何实现这几个函数...原创 2019-01-21 10:06:46 · 740 阅读 · 0 评论 -
前端面试大全:JS 基础知识点及常考面试题(一)
(内容同步自小邹的头条号:沪漂程序员的生活史)原始(Primitive)类型涉及面试题:原始类型有哪几种?null 是对象嘛?在 JS 中,存在着 6 种原始值,分别是:boolean null undefined number string symbol首先原始类型存储的都是值,是没有函数可以调用的,比如 undefined.toString()此时你...原创 2019-01-10 09:44:29 · 2863 阅读 · 0 评论 -
前端面试大全:JS 基础知识点及常考面试题(二)
(内容同步自小邹的头条号:沪漂程序员的生活史)在这一部分我们继续来了解 JS 的一些常考和容易混乱的基础知识点。 == vs ===涉及面试题:== 和 === 有什么区别?对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,这也就用到了我们上一章节讲的内容。假如我们需要对比 x 和 y 是否相同,就会进行如下判断流程:首先会判断两者类型是否相同。...原创 2019-01-10 09:49:47 · 951 阅读 · 0 评论 -
前端面试大全:Event Loop
(内容同步自小邹的头条号:沪漂程序员的生活史)在前两篇文章中小邹介绍了 JS 异步相关的知识。在实践的过程中,你是否遇到过以下场景,为什么 setTimeout 会比 Promise 后执行,明明代码写在 Promise 之前。这其实涉及到了 Event Loop 相关的知识,这一篇文章我们会来详细地了解 Event Loop 相关知识,这也是面试经常会问的一个问题。 进程与线程...原创 2019-01-16 10:13:09 · 4218 阅读 · 1 评论 -
页面可见性API,解决H5端页面可见性监听的最终方案
一、简介背景:一般我们在进行前端页面开发时,对于用户正在离开页面。常用的方法是监听下面三个事件。pagehide beforeunload unload但是,这些事件在手机上可能不会触发,页面就直接关闭了。因为手机系统可以将一个进程直接转入后台,然后杀死。用户点击了一条系统通知,切换到另一个 App。 用户进入任务切换窗口,切换到另一个 App。 用户点击了 H...原创 2018-11-01 10:38:54 · 5156 阅读 · 0 评论 -
实现两个窗口通信方法之postMessage
两个窗口的通信问题应该是一个比较常见的问题了,通信可以通过很多种方式,如下:localStorage postMessage websocket今天博主先来一篇postMessage干货,后期还会给出websocket的实现代码。 首先来看一下基本的语法otherWindow.postMessage(message, targetOrigin, [transfer]);...原创 2018-07-18 13:47:14 · 2395 阅读 · 0 评论 -
你不知道的JavaScript--Item8 函数,方法,构造函数调用
1、函数调用Function绝对是JavaScript中的重中之重。在JavaScript中,Function承担了procedures, methods, constructors甚至是classes以及modules的功能。在面向对象程序设计中,functions,methods以及class constructor往往是三件不同的事情,由不同的语法来实现。但是在JavaScript中...转载 2018-07-17 18:29:05 · 245 阅读 · 0 评论 -
webpack的使用以及脱坑集合
使用process.argv 获取命令行使用的参数// 判断是否带production参数,production会压缩jsvar isprod = false;for (var i in process.argv) { if (process.argv[i] === "-p" || process.argv[i] === "--production") { ispr原创 2017-04-21 16:32:21 · 1472 阅读 · 0 评论 -
webpack开发和生产两个环境的配置详解
目录webpack.base.conf.jswebpack.dev.conf.jswebpack.prod.conf.js一开始在接触webpack 的时候,简直痛不欲生,现在回头看,做个注释,当然参考了很多文章。这是一个关于vue 开发的webpack 架构会列举出来webpack 系列教程Webpack——令人困惑的地方Express结合Webpack的全栈自动刷新原创 2017-04-21 16:35:20 · 42424 阅读 · 4 评论 -
如何不使用try-catch块在Javascript中编写异步等待
ES7异步/ AWAIT使我们的开发人员编写异步JS代码看起来同步。在目前的JS版本中,我们将介绍Promises,这样我们可以简化Async流程并避免回调地狱。回调地狱是用来描述JS中的以下情况的术语:function AsyncTask() { asyncFuncA(function(err, resultA){ if(err) return cb(err);原创 2017-05-16 09:58:59 · 2602 阅读 · 2 评论 -
file表单上传,java后台接收案例
1、前端向后台传送文件的过程其实就是,前端将文件流传给后台,后台接收文件流,然后将其写到后台服务器上。处理文件时,后台程序只需要读取服务器上的文件即可。2、需要引入两个jar包:commons-fileupload-1.3.1.jar和commons-io-2.4.jar。html代码:[html] view plain copy原创 2017-06-26 10:47:47 · 13064 阅读 · 2 评论 -
var,let,const,function声明的「创建、初始化和赋值」过程
假设有如下代码:function fn(){ var x = 1 var y = 2}fn()在执行 fn 时,会有以下过程(不完全):进入 fn,为 fn 创建一个环境。找到 fn 中所有用 var 声明的变量,在这个环境中「创建」这些变量(即 x 和 y)。将这些变量「初始化」为 undefined。开始执行代码x = 1 将 x原创 2017-08-23 14:01:47 · 1612 阅读 · 1 评论 -
10行原生JS实现文字无缝滚动
废话不多说,直接上代码 aaaaaaaaa bbbbbbbbbbbbbb ccccccccccc ddddddddddddddd aaaaaaaaaaaaaa body,#app{ margin: 0; padding: 0; font-family:Helvetica; background: #f0ef原创 2017-09-06 14:48:32 · 3954 阅读 · 1 评论 -
跨域下使用获取iframe的父页面URL
通常情况下,我们获取iframe父页面的url很简单:parent.location或top.location即可,但前提是它们遵循同源策略。当iframe与父页面不属于同一个域名时,像上面的获取会因为安全策略原因而失败。在nczonline的一篇文章上看到一种方法,使用document.referrer。方法很简单,通过parent !=window检测iframe与父页面是否同原创 2017-10-24 21:42:15 · 16973 阅读 · 5 评论 -
移动端返回上一页,刚需!document.referrer 详解
返回上一页,在PC端我们可以使用:history.go(-1)或者history.back(),可以正常返回第一层。这样,我们不需要上一页的 url 具体是什么,只要使用 history 一般都没啥问题。 但是在移动端,如果想要返回上一页。比如从A页面跳到B页面,如果B页面想返回A页面,为了防止不会跳错,必须要有一个 a href="javascript:history.g转载 2017-10-24 21:49:14 · 2906 阅读 · 0 评论 -
js获取当天最后一秒和所在星期最后一秒的时间戳
话不多说,直接上代码://获取每一天24点前一秒的时间戳var todayYear=(new Date()).getFullYear();var todayMonth=(new Date()).getMonth();var todayDay=(new Date()).getDate();var todayTime=(new Date(todayYear,todayMonth,t原创 2018-01-05 14:40:45 · 10385 阅读 · 0 评论 -
你不知道的JavaScript--Item2 浮点数精度
理解JavaScript的浮点数大多数编程语言都有几种数值型数据类型,但是JavaScript却只有一种。你可以使用typeof 运算符查看数字的类型。不管是整数还是浮点数,JavaScript都将它们简单地归类为数字。typeof 17; //numbertypeof 98.6; //numbertypeof -21.3; //number123事实上,JavaScript中所有的数字...转载 2018-06-13 10:20:50 · 328 阅读 · 0 评论 -
你不知道的JavaScript--Item5 全局变量
1、尽量少用全局对象全局变量的问题在于,你的JavaScript应用程序和web页面上的所有代码都共享了这些全局变量,他们住在同一个全局命名空间,所以当程序的两个不同部分定义同名但不同作用的全局变量的时候,命名冲突在所难免。web页面包含不是该页面开发者所写的代码也是比较常见的,例如:第三方的JavaScript库广告方的脚本代码第三方用户跟踪和分析脚本代码不同类型的小组件,标志和按钮比方说,该第...转载 2018-06-21 10:08:41 · 255 阅读 · 0 评论 -
你不知道的JavaScript--Item6 var预解析与函数声明提升
1、var 变量预编译JavaScript 的语法和 C 、Java、C# 类似,统称为 C 类语法。有过 C 或 Java 编程经验的同学应该对“先声明、后使用”的规则很熟悉,如果使用未经声明的变量或函数,在编译阶段就会报错。然而,JavaScript 却能够在变量和函数被声明之前使用它们。下面我们就深入了解一下其中的玄机。先来看一段代码:(function() { console.log(...转载 2018-06-21 10:13:18 · 255 阅读 · 0 评论 -
async/await 如何优美的处理异常?
本着一种学习的态度写了此话题,如有不妥之处还请各位大牛多多指点.Purpose: 此解决方案,可以避免业务代码中出现大量的try/catch, 众所周知try/catch对性能方面有一定的影响,另一方面try/catch在Node.js >= v8.3.0以后对性能的损耗是可以忽略不计的.try/catch具体文献: However for Node 8.3+ the performan...转载 2018-06-07 14:28:18 · 16466 阅读 · 0 评论 -
你不知道的JavaScript--Item1 严格模式
本文转自【阮一峰博客】:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html一、概述除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立”严格模式”的目的,主要有以下几个:消除Javascript语法...转载 2018-06-13 10:16:18 · 194 阅读 · 0 评论 -
你不知道的JavaScript--Item7 函数和(命名)函数表达式
1、函数声明与函数表达式在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明确了一点:函数声明必须带有标示符(Identifier)(就是大家常说的函数名称),而函数表达式则可以省略这个标示符:函数声明:function 函数名称 (参数:可选){ 函数体 }1函数表达式:function 函数名称(可选)(参数:可选){ 函数体...转载 2018-06-25 15:43:03 · 391 阅读 · 0 评论 -
你不知道的JavaScript--Item3 隐式强制转换
JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。。typeof '11' ...转载 2018-06-19 10:23:30 · 228 阅读 · 0 评论 -
你不知道的JavaScript--Item4 基本类型和基本包装类型(引用类型)
1、基本类型和引用类型基本的数据类型有5个:undefined,boolean,number,string,nulltypeof null; //"object"typeof undefined; //"undefined"typeof 1; //"number"typeof false //"boolean"typeof "1" //"string"12345(令人困转载 2018-06-20 10:14:10 · 365 阅读 · 0 评论 -
koa2+mysql实现简单的登陆注册
先附上源码地址:https://github.com/zj0715zh/koa2-mysql有兴趣的可以下载看看,那么现在我们进入正题:什么是koa框架?koa是一个基于node实现的一个新的web框架,它是由express框架的原班人马打造的。它的特点是优雅、简洁、表达力强、自由度高。它更express相比,它是一个更轻量的node框架,因为它所有功能都通过插件实现。关...原创 2019-04-30 09:23:55 · 4073 阅读 · 3 评论