#
[精品] [置顶] 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法

前言网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字典文件,无法根据实际需要满足需求。 综上,我精心整理并修改了网上几种常见的字典文件并简单封装了一下可以直接拿来用的工具库。 这篇文章差不多一个月前就写好了大部分了,但是就差拼音输入法这一块一直没... 阅读全文

@2016-09-27 JavaScript 浏览(6528)
#
几种排序算法的JavaScript实现

概述常见排序算法: 冒泡排序这是最笨也是最容易想到的排序方法: function bubbleSort(arr) { for(let i=0, len=arr.length; i<len-1; i++) { for(let j=0; j<len-1-i; j++) { if(arr[j] > arr[j+1]) { ... 阅读全文

@2018-06-13 JavaScript 浏览(33)
#
WebWorker简单复习

本文demo:http://demo.haoji.me/2018/04/28-webworker/ JS是单线程语言由于JS设计的初衷就是用来进行一些简单的用户交互以及DOM操作,为了避免复杂性,从一开始JS就被设计成一门单线程语言,现在如是,以后也不会变。 然后正是由于单线程的缘故,当我们需要在前端运行一些大运算量的代码时,浏览器肯定会陷入卡顿。为了解决前端大运算量问题,HTML5引入了We... 阅读全文

@2018-04-28 JavaScript 浏览(91)
#
编辑页面离开时弹出提示

正文N年前就知道,只是没记录过,所以今天写下来。主要是借助window.onbeforeunload来实现: JS写法: window.onbeforeunload = function(){ return '修改尚未保存,确定放弃吗?';};//或者这样写:window.onbeforeunload = function(event){ event.returnValue = '... 阅读全文

@2017-08-22 JavaScript 浏览(620)
#
Java、JS、PHP关于AES的加密解密互通问题

背景最近对接统一登录碰到PHP和Java的AES加密结果不一致问题,花了不少的时间,特此记录一下。 大致逻辑就是第三方平台对接统一登录平台时,拿到对方给的一些数据然后采用AES加密生成一个token给对方校验,第三方平台是Java写的,统一登录平台时php写的,而且php那边肯定是不能随意修改代码的,只能改Java这边。 首先,php那边的加密代码如下: /** * 加密 * @return... 阅读全文

@2017-03-18 JavaSE 浏览(2182)
#
HTML5 fetch API

介绍fetch是传统XMLHttpRequest(也就是常说的ajax)的替代者,相比后者,它更简单,并且内置对Promise的支持。 但其实话说回来,我至今没太搞明白它的更多优点,因为说它使用简单好像体现不出优势,因为我们平时都是使用ajax框架的(比如jQuery),很少会直接使用原生XMLHttpRequest,而且用了它的话还要担心兼容性的问题。 语法语法很简单:fetch(url, ... 阅读全文

@2017-03-08 JavaScript 浏览(938)
#
Mock.js使用小结

介绍mockjs是一个模拟后台接口的JS库,它的原理是重写了XMLHttpRequest,它可以在接口没出来时非常方便的模拟数据,上线之后不引用它即可。 官网:http://mockjs.com/文档:https://github.com/nuysoft/Mock/wiki 基本语法Mock.mock(template)根据数据模板直接返回数据,以下代码可访问 http://mockjs.... 阅读全文

@2017-02-23 JavaScript 浏览(1250)
#
JS弹出下载对话框以及实现常见文件类型的下载

写在前面JS要实现下载功能,一般都是这么几个过程:生成下载的URL,动态创建一个A标签,并将其href指向生成的URL,然后触发A标签的单击事件,这样就会弹出下载对话框,从而实现了一个下载的功能。 这里所说的下载,有时候也可以理解为保存。出于安全考虑,JS肯定无法直接调用FileAPI写文件到磁盘,但是却可以通过下载来变相实现保存功能。 几个备用知识点JS触发单击事件既然是用A标签模拟,那么肯... 阅读全文

@2017-02-16 JavaScript 浏览(2517)
#
为何所有人都说JavaScript中不推荐使用eval

前言估计稍微接触过前端的人都知道eval不推荐使用,但是有没有想过到底是哪些原因不推荐使用呢? 缺点分析 可读性差;性能差;不易维护、不易调试、不易优化;安全问题,它会执行任意传给它的代码,在代码字符串未知或者是来自一个不信任的源时,绝对不要使用 eval,比如说稍不注意容易引起XSS攻击;作用域问题; 当然性能差是相对的,现代浏览器中其实eval的性能很多时候还是比较好的,比如eval一个... 阅读全文

@2016-11-30 JavaScript 浏览(849)
#
[精品] JavaScript常见原生DOM操作API总结

几种对象NodeNodeListHTMLCollection节点查找API节点创建APIcreateElementcreateTextNodecloneNodecreateDocumentFragment节点修改APIappendChildinsertBeforeremoveChildreplaceChild节点关系API父关系API子关系API兄弟关系型API元素属性型APIsetAttribu... 阅读全文

@2016-11-20 JavaScript 浏览(1417)
#
JavaScript中的new和instanceof操作符

newJavascript中的new运算符是用来实例化一个类,从而在内存中分配一个实例对象。 在javascript中, 通过new可以产生原对象的一个实例对象,而这个实例对象继承了原对象的属性和方法。因此,new存在的意义在于它实现了javascript中的继承,而不仅仅是实例化了一个对象! 一个模拟new实现过程的代码如下(注意仅仅是模拟其实现过程,并不能替代new!): fun... 阅读全文

@2016-11-16 JavaScript 浏览(440)
#
JavaScript原生事件相关知识点总结

事件的三个阶段捕获阶段 -> 目标阶段 -> 冒泡阶段,IE低版本不支持捕获阶段。addEventListener的第三个参数useCapture就是表示是否在捕获阶段触发,默认false。 事件的绑定和解绑一般有3种写法。 属性方式此方式不推荐。如,直接在div上面写onclick: target.onclick = fn; // 绑定事件target.onclick = ... 阅读全文

@2016-11-12 JavaScript 浏览(596)
#
JS获取剪贴板图片之后的格式与压缩问题

前言某年某月的某一天,突然发现博客服务器上上传的图片都比较大,一些很小的截图都有几百kb,本来服务器带宽就慢,不优化一下说不过去。 问题细述特别说明:本文代码因为只是用于我自己后台写markdown上传图片,运行环境只考虑PC,所以没有考虑任何兼容性,推荐Chrome下使用。 以下面一张图片为例: 原始图片为85kb,jpg格式的,上传之后就变成png格式了,而且变成了560kb!实在是... 阅读全文

@2016-10-23 JavaScript 浏览(585)
#
JS自定义事件

原文发表于:20160423 兼容性较好的方法先看一个例子: var event = document.createEvent("CustomEvent");event.initCustomEvent("myevent", true, true, {a:1, b:2});document.addEventListener("myevent", function(e){ console.l... 阅读全文

@2016-10-20 JavaScript 浏览(680)
#
Promise简单学习

Promise用法介绍ES6中内置了Promise,非ES6下也有很多第三方实现。Promise是JS中异步编程的一种解决方案,主要是为了解决异步回调深渊。 我喜欢偷懒,懒得介绍杂七杂八等等,直接上代码。 最基本用法先来看个例子: // 用setTimeout模拟简单的ajax,num传参来人为模拟成功或者失败,大于10表示成功function ajax(num) { return n... 阅读全文

@2016-10-09 JavaScript 浏览(75)
#
【经典面试题】JavaScript数组去重

题目已知有如下一个数组,要求实现一个去重方法: var arr = ['aa', 'bb', 'cc', '', 1, 0, '1', 1, 'bb', null, undefined, null]; 既然是面试题,肯定要考虑兼容性和效率。 几种实现第一种实现这是最容易想到的方法: function unique1(array){ var result = []; for(va... 阅读全文

@2016-09-28 JavaScript 浏览(670)
#
JavaScript中call和apply的区别

区别二者的作用都是在指定this值和参数的情况下调用某个函数,它们 唯一区别 就是参数指定的形式不一样,call接收的是参数列表,apply接收的是数组。 语法: fn.call(thisArg[, arg1[, arg2[, ...]]]);fn.apply(thisArg[, argsArray]); call和apply老是分不清,如何记忆呢?可以这样记:apply比call单词长,参... 阅读全文

@2016-09-23 JavaScript 浏览(540)
#
[精品] JavaScript正则表达式详解

创建正则表达式JS的正则表达式类型叫RegExp,有2种创建方式: var reg1 = /a/g; // 双斜杠法,这种方法书写更方便var reg2 = new RegExp('a', 'g'); // 传统写法,这种方法更正统console.log(/a/g instanceof RegExp); // 输出true 这2种方式没有任何区别,但是,当正则表达式的内容是动态的时候,用Reg... 阅读全文

@2016-09-22 JavaScript 浏览(739)
#
【转载】addEventListener的第三个参数分析

原文:https://my.oschina.net/u/1454562/blog/205010觉得写得不错,就转载过来了。 如果要把HTML元素的事件与某个函数绑定起来,可以有下面三种方法,以最常见的“点击”事件为例。 方法一: 直接在对应的HTML元素标签上绑定函数 <button id='submit' onclick='onClickFn()'>Click Me!<... 阅读全文

@2016-09-21 JavaScript 浏览(503)
#
11行代码实现简单的图片懒加载以及背景图懒加载

前言网上绝大多是图片懒加载插件都是针对img的src的,但是很多时候图片是以背景图的形式存在的,因为这种方式可以很容易实现图片不变形但是又保证宽高度固定,所以只能自己写一个。 这里只是简单的实现,没有考虑横向滚动、div滚动等等情况,但相信已经满足大部分情况了。 代码直接上代码,标题说11行,真有点吹了,哈哈,其实是去掉了大括号之后还剩11行,一共有15行: /** * 图片懒加载插件,与绝... 阅读全文

@2016-09-08 JavaScript 浏览(850)
第1页,共3页