自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 js生成随机数

Math.random()来生成指定范围内(如:1-100)的随机数一、包括下线数字(lower)不包括上限数字(upper)/** * 产生随机整数,包含下限值,但不包括上限值 * @param {Number} lower 下限 * @param {Number} upper 上限 * @return {Number} 返回在下限到上限之间的一个随机整数 */function ...

2018-11-28 11:55:37 6342

原创 RSA加密流程

RSA加密流程A前端、B后端 A->BA提取消息m的消息摘要h(m),并使用自己的私钥对摘要h(m)进行加密,生成签名sA将签名s和消息m一起,使用B的公钥进行加密,生成密文c,发送给BBB接收到密文c,使用自己的私钥解密c得到明文m和数字签名sB使用A的公钥解密数字签名s解密得到H(m)B使用相同的方法提取消息m的消息摘要h(m)B比较两个消息摘要。相同则验...

2018-07-30 13:05:13 1508

原创 RSA加密

RSA非对称加密https://github.com/travist/JSEncrypt<!doctype html><html> <head> <title>JavaScript RSA Encryption</title> <script src="http://code.jquery.com/...

2018-07-30 13:04:13 805

原创 AES加解密流程及方法

AES加解密流程及方法流程图加密AES方法是支持AES-128、AES-192和AES-256的,加密过程中使用哪种加密方式取决于传入key的类型,否则就会按照AES-256的方式加密 解密由于加密后的密文为128位的字符串,那么解密时,需要将其转为Base64编码的格式。 那么就需要先使用方法CryptoJS.enc.Hex.parse转为十六进制,再使用Cr...

2018-07-30 13:02:59 11447 1

原创 理解AES加密解密的使用方法

理解AES加密解密的使用方法很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难。 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法。最后给出例子来帮助理解AES加密解密的使用方法。AES的麻烦相比于其他加密,AES加密似乎模式很多,包括ECB、CBC等等等等,每个模式又包括IV参数和Padding参数,并且,不同语言对AES加密的库设计有区别。这些导...

2018-07-30 13:01:23 2978

原创 手淘-网易适配方案

网易的适配方案设计稿640px取一个100px的font-size为参照 那么body元素的宽度就可以设置为width: 6.4rem,所以html的font-size=deviceWidth/6.4 这个deviceWidth就是viewport设置中的那个deviceWidth,根据这个计算规则,可得出适配方案deviceWidth = 320,font-size = 320 / ...

2018-07-28 11:56:01 1684

原创 H5适配中的一些概念

屏幕尺寸我们通常所说的iPhone5屏幕尺寸为4英寸、iPhone6屏幕尺寸为4.7英寸,指的是显示屏对角线的长度虚拟试图(visual viewport)可以认为是设备自己的宽度,也叫视口尺寸指的是浏览器可视区域的宽度。布局试图(layout viewport)可以认为是虚拟的窗口,也可以片面的理解为苹果或者安卓手机屏幕的分辨率(注:是分辨率而非手机屏幕大小)...

2018-07-28 11:53:20 946

转载 Node 环境变量 process.env.NODE_ENV 之webpack应用

Node 环境变量 process.env.NODE_ENV 之webpack应用Node 环境变量 process.env.NODE_ENV 之webpack应用进入主题一、接下来进入主题,开始配置 webpack.config.js:二、通过webpack -p参数控制三、通过 webpack.DefinePlugin 定义四、在config文件里获取NODE_ENV值五、...

2018-05-30 11:02:23 3460

原创 webpack

一、webpack3.x.x基本介绍1-1 webpack基本介绍 webpack的概念和作用 模块打包器 代码分割 代码文件打包 loader加载 commonjs规范 模块热更新 适用于大型项目1-2 webpack安装和命令 安装 npm install webpack --save-dev例子: 新建hello.js执行命令 webpack hello...

2018-05-30 10:31:59 258

原创 js中的手势

js触摸事件该类事件会在用户手指放在屏幕上面时,在屏幕上滑动时,或从屏幕上移开时触发。具体来说有以下几个触摸事件。 1. touchstart 当手指放在屏幕上触发。 2. touchmove 当手指在屏幕上滑动时,连续地触发。 3. touchend 当手指从屏幕上离开时触发。 4. touchcancel 当系统停止跟踪时触发,系统什么时候取消,文档没有明确的说明。【总...

2018-05-24 14:38:30 1986

原创 Array数组之reduce:reduceRight

Array数组之reduce/reduceRightreducereduce()方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。语法arr.reduce(callback[, initialValue])callback 执行数组中每个值的函数,包含四个参数:accumulator-累加器累加回调的返回值; 它是上一次调用回调时返回...

2018-05-24 14:35:16 524

原创 #angular 国际化

angular国际化国际化概念一、I18n and L10n in AngularJS 1. 什么是I18n和L10n?   国际化(Internationalization),简称I18n,是让产品开发在一个他们可以简单地对产品进行语言、文化的本地化的方法的规范。本地化(Localization),简称L10n,一个使得应用、文本有适应特殊的文化或者语言市场的能力的规范。对于应用开发者,使一个

2017-12-12 16:31:32 774

原创 初识TypeScript

字符串新特性多行字符串字符串模板自动拆分字符串参数新特性参数类型默认参数可选参数函数新特性Rest and Spread 操作符genarator函数destructuring析构表达式在对象中进行析构在数组中进行析构表达式与循环箭头表达式forEachfor infor of面向对象特性TypeScript类访问控制符类的继承泛型接口模块注解类型定

2017-11-05 17:05:58 429

原创 angular中copy和extend用法实例

angular.copy() 深拷贝定义: 复制一个对象或者一个数组 1. 如果省略了destination,一个新的对象或数组将会被创建出来; 2. 如果提供了destination,则source对象中的所有元素和属性都会被复制到destination中; 3. 如果source不是对象或数组(例如是null或undefined), 则返回source; 4. 如果source和

2017-11-05 15:00:38 2551

原创 js正则表达式-前瞻

js正则表达式-前瞻JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能。文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例。本文适合有一定 JS 正则表达式基础的同学,如果对正则表达式并不了解,还需先学习基础再来观摩这门否定大法。一、标签过滤需求不知道大家在写JS有没有遇到过这样的情况,当你要处理一串字符串时,需要写一个正

2017-09-25 17:36:33 1379

原创 js正则表达式

js正则表达式RegExp下的方法test在字符串中测试模式匹配,成功返回true,失败返回false exec在字符串中执行匹配搜索,返回结果数组字符串的正则表达式方法 方法 含义 match(pattern) 返回pattern中的子串或null replace(pattern,replacement) 用replacement替换pattern search(pat

2017-09-25 17:34:02 631

原创 Git

GitGit安装进入官网下载安装界面Git,选择符合自己系统的安装包 which -a git git -version ls -ah 显示.git目录 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步: 第一步,使用命令git add file.name,注意,可反复多次使用,添加多个文件。 第二步,使用命令git commit -m ‘注释’,完成。设

2017-07-16 09:32:22 436

原创 关于json的几个方法

js中将字符串转换成json的三种方式1、eval方式解析function strToJson(str){ var json = eval('(' + str + ')'); return json; } 记得别忘了str两旁的小括号2、new Function形式function strToJson(str){ var json = (new Function("r

2017-07-12 21:47:20 636

原创 面向对象与原型原稿

一.创建对象创建一个对象,然后给这个对象新建属性和方法。var box = new Object(); //创建一个Object对象box.name = 'Lee'; //创建一个name属性并赋值box.age = 100; //创建一个age属性并赋值box.run

2017-05-26 23:18:52 307

原创 面向对象与原型重难点

一、创建对象普通模式 优点: 缺点:每次实例化产生大量重复的代码工厂模式 优点:集中实例化解决普通模式实例化产生大量重复代码的问题 缺点:无法区分谁到底是哪个对象的实例构造函数 优点:既解决普通模式重复实例化的问题也解决工厂模式对象识别问题 缺点:两个实例化后的属性或方法不相等二、5种函数模式原型模式 优点:解决构造函数两个实例化后的属性或方法不相等的问题 缺点:无法传参,

2017-05-26 23:17:41 445

原创 面向对象与原型三

继承原型链继承function Box(){//被继承的函数叫做超类型(父类,基类) this.name='lee';}function Desk(){//集成的函数叫做子类型(子类,派生类) this.age=100}//通过原型链集成,超类型实例化后的对象实例,赋值给子类的原型属性//new Box()会将Box构造里的信息和原型里的信息都交给DeskDesk.pro

2017-05-26 23:16:38 340

原创 面向对象与原型二

构造函数+原型模式为了解决构造函数传参和共享问题,衍生出组合构造函数+原型模式。简而言之就是需要独立的部分用构造函数,需要共享的部分用原型。 优点:这种模式很好的解决了传参和引用共享的大难题。是创建对象比较好的方法。function Box(name, age) {//不共享的使用构造函数 this.name = name; this.age = age; this. fa

2017-05-26 23:15:56 358

原创 面向对象与原型一

面向对象和原型创建对象var box=new Object();box.name='chen';box.age=26;box.run=function() { return this.name+this.age;}alert(box.run());var box2=new Object();box2.name='jack';box2.age=24;box2.run=funct

2017-05-26 23:14:49 340

原创 进制间的转换

二进制、八进制、十进制、十六进制的表示方法以及各进制之间的转换二进制逢2进1,由0 1构成八进制逢8进1,由0-7构成十进制逢10进1,由0-9构成十六进制逢16进1,由0-9 A-F构成二进制与十进制之间的转换1、二进制转十进制 方法为:把二进制数按权展开、相加即得十进制数。 2、十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继

2017-05-17 10:10:53 349

原创 scrollWidth clientWidth offsetWidth style.width screen.width

关于scrollWidth() clientWidth() offsetWidth() style.width() screen.height()谷歌和火狐默认滚动条的宽度是 17px(Firefox Chrome IE 表现一致)一、计算宽高方法有: ①offsetWidth、offsetHeight ②clientWidth、clientHeight ③style.width、style.

2017-05-17 00:31:47 679

原创 css Hack

ie条件注释 浏览器版本 语法 所有ie ie6 ie6以下版本 ie6以上版本 ie6及以下版本 ie6及以上版本 css选择器前缀 浏览器版本 语法 ie6 *html ie7 *+html ie6,ie7 @media screen\9{} ie8 @media \0screen

2017-05-15 10:05:38 410

原创 Atom常用快捷键整理

英文中文快捷键功能New Window新建界面窗口Ctrl + Shift + N如中文意思New File新建文件Ctrl + N如中文意思Open File打开文件Ctrl + O如中文意思Open Folder打开文件夹Ctrl + Shift + O如中文意思Add Project Folder加载项目目录Ctrl + Alt + O如中文意思

2017-05-10 13:48:48 4797

原创 ES6语法实现模板编译

ES6语法实现模板编译基础字符串模板var template = `<ul> <% for(var i=0; i < data.supplies.length; i++) { %> <li><%= data.supplies[i] %></li> <% } %></ul>`;思路:怎么编译这个模板字符串呢?根本原理可以用ES5语法的循环拼接字符串,这里设置这个循环拼接函数为ec

2017-04-29 19:42:44 3311 1

原创 webpack

一、webpack基本介绍**1-1**webpack基本介绍 webpack的概念和作用 模块打包器 代码分割 代码文件打包 loader加载 commonjs规范 模块热更新 适用于大型项目**1-2**webpack安装和命令 安装 npm install webpack --save-dev例子: 新建hello.js执行命令 webpack hello.js

2017-04-29 16:47:38 749

原创 JS操作iframe里的dom

JS操作iframe里的dom一、父级窗口操作iframe里的domJS操作iframe里的dom可是使用contentWindow属性,contentWindow属性是指指定的frame或者iframe所在的window对象,在IE中iframe或者frame的contentWindow属性可以省略,但在Firefox中如果要对iframe对象进行编辑则,必须指定contentWindow属性,c

2017-04-25 15:49:29 2967

原创 Javascript操作DOM常用API总结

Javascript操作DOM常用API总结原文地址:http://luopq.com/2015/11/30/javascript-dom/类型Node类型(ELEMENT_NODE:1 ATTRIBUTE_NODE:2 TEXT_NODE:3 COMMENT_NODE:8``DOCUMENT_NODE:9 DOCUMENT_FRAGMENT_NODE:11)节点创建型(createElemen

2017-04-18 11:08:38 2412 2

原创 Javascript操作DOM常用API总结

Javascript操作DOM常用API总结原文地址:http://luopq.com/2015/11/30/javascript-dom/类型Node类型(ELEMENT_NODE:1 ATTRIBUTE_NODE:2 TEXT_NODE:3 COMMENT_NODE:8``DOCUMENT_NODE:9 DOCUMENT_FRAGMENT_NODE:11)节点创建型(createElemen

2017-04-18 11:04:43 325

原创 grunt自动刷新liveload

需要的grunt插件grunt-contrib-watchgrunt-contrib-connectconnect-livereloadserve-staticserve-indexconnect优点: * 自动搭建静态文件服务器,不需在自己电脑上搭建Web服务器。 * 不需要浏览器插件的支持(不现定于某个浏览器)。 * 不需要给网页手动添加livereload.js。 缺点:

2017-04-07 14:25:40 816 1

原创 grunt

time-grunt用途:列出当前每个执行任务所需要的时间使用方法 require(‘time-grunt’)(grunt)load-grunt-tasks用途:加载当前项目需要的是所有依赖项,取代以前grunt.loadNpmTask('grunt-contrib-watch')这种繁琐的声明方式使用方法 require(‘load-grunt-tasks’)(grunt)m

2017-04-07 00:35:48 601

原创 bower

bower web包管理器安装bowernpm install bower -g 如何生成bower.jsonbower init用bower创建一个jquery和bootstrap的项目输入命令bower install jquerybower install bootstrap如果用到的组件比较小众,在bower中没有注册怎么办?一、GitHub短写 例 安装jquery这是jq

2017-04-03 19:06:15 641

原创 yeoman

yeoman是个脚手架(生成器) 在web项目开始时使用yeoman来生成项目文件,代码结构。yeoman自动将最佳实践和工具整合进来,大大加速和方便我们的开发安装npm install yo -g yeoman需要和generators搭配使用,yeoman和generators的关系就像橡皮泥和橡皮泥捏出来的模具 yeoman基于node用yeoman搭建一个angular项目一、开始

2017-04-03 19:04:31 611

原创 常用的dos命令

Shell常用命令整理 命令 功能 cd 用于切换用户当前工作目录 cd .. 返回到当前目录下的上一级目录 pwd 用于显示用户当前工作目录 mkdir/md 创建目录 rmdir 删除目录 rm 用于删除文件 ls 显示当前目录文件 cp 复制命令 mv 移动命令 cd:用于切换用户当前工作目录cd aaa

2017-04-03 19:03:01 872

原创 npm init 之package.json

Package.json 属性说明 属性 说明 name 包名 version 包的版本号 description 包的描述 homepage 包的官网 url author 包的作者姓名 contributors 包的其他贡献者姓名 dependencies 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_mod

2017-04-03 18:58:07 3100

原创 grunt压缩雪碧图

grunt 打包雪碧图插件grunt-spritesmith简易配置 // 项目配置(任务配置) grunt.initConfig({ // 读取我们的项目配置并存储到pkg属性中 pkg: grunt.file.readJSON('package.json'), // 自动雪碧图 sprite: {

2017-04-01 11:40:23 1168

原创 grunt自动刷新liveload

需要的grunt插件grunt-contrib-watchgrunt-contrib-connectconnect-livereload优点:自动搭建静态文件服务器,不需在自己电脑上搭建Web服务器。 不需要浏览器插件的支持(不现定于某个浏览器)。 不需要给网页手动添加livereload.js。 缺点:对于刚接触的人,配置略显复杂。Gruntfile.js的配置一、官方配置conne

2017-03-30 23:44:18 628

angular-datepicker

从入门到精通redux,带你深入学习redux数据管理 从入门到精通redux,带你深入学习redux数据管理

2018-07-02

空空如也

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

TA关注的人

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