<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一个有味道的Weber]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JSCTO</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JSCTO]]></copyright><item><title><![CDATA[js生成随机数]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/84581976</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/84581976</guid><author>JSCTO</author><pubDate>Wed, 28 Nov 2018 11:55:37 +0800</pubDate><description><![CDATA[Math.random()来生成指定范围内（如：1-100）的随机数
一、包括下线数字（lower）不包括上限数字（upper）
/**
 * 产生随机整数，包含下限值，但不包括上限值
 * @param {Number} lower 下限
 * @param {Number} upper 上限
 * @return {Number} 返回在下限到上限之间的一个随机整数
 */
function ...]]></description><category></category></item><item><title><![CDATA[RSA加密流程]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/81283290</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/81283290</guid><author>JSCTO</author><pubDate>Mon, 30 Jul 2018 13:05:13 +0800</pubDate><description><![CDATA[RSA加密流程

A前端、B后端 
A-&amp;gt;B


A提取消息m的消息摘要h(m),并使用自己的私钥对摘要h(m)进行加密,生成签名s
A将签名s和消息m一起,使用B的公钥进行加密,生成密文c,发送给B


B


B接收到密文c,使用自己的私钥解密c得到明文m和数字签名s
B使用A的公钥解密数字签名s解密得到H(m)
B使用相同的方法提取消息m的消息摘要h(m)
B比较两个消息摘要。相同则验...]]></description><category></category></item><item><title><![CDATA[RSA加密]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/81283284</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/81283284</guid><author>JSCTO</author><pubDate>Mon, 30 Jul 2018 13:04:13 +0800</pubDate><description><![CDATA[RSA非对称加密

https://github.com/travist/JSEncrypt



&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;JavaScript RSA Encryption&amp;lt;/title&amp;gt;
    &amp;lt;script src=&quot;http://code.jquery.com/...]]></description><category></category></item><item><title><![CDATA[AES加解密流程及方法]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/81283278</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/81283278</guid><author>JSCTO</author><pubDate>Mon, 30 Jul 2018 13:02:59 +0800</pubDate><description><![CDATA[AES加解密流程及方法



流程图



加密

AES方法是支持AES-128、AES-192和AES-256的，加密过程中使用哪种加密方式取决于传入key的类型，否则就会按照AES-256的方式加密 




解密

由于加密后的密文为128位的字符串，那么解密时，需要将其转为Base64编码的格式。 
那么就需要先使用方法CryptoJS.enc.Hex.parse转为十六进制，再使用Cr...]]></description><category></category></item><item><title><![CDATA[理解AES加密解密的使用方法]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/81283263</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/81283263</guid><author>JSCTO</author><pubDate>Mon, 30 Jul 2018 13:01:23 +0800</pubDate><description><![CDATA[理解AES加密解密的使用方法

很多人对于AES加密并不是很了解，导致互相之间进行加密解密困难。  
本文用简单的方式来介绍AES在使用上需要的知识，而不涉及内部算法。最后给出例子来帮助理解AES加密解密的使用方法。



AES的麻烦

相比于其他加密，AES加密似乎模式很多，包括ECB、CBC等等等等，每个模式又包括IV参数和Padding参数，并且，不同语言对AES加密的库设计有区别。这些导...]]></description><category></category></item><item><title><![CDATA[手淘-网易适配方案]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/81259482</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/81259482</guid><author>JSCTO</author><pubDate>Sat, 28 Jul 2018 11:56:01 +0800</pubDate><description><![CDATA[网易的适配方案

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



deviceWidth = 320，font-size = 320 / ...]]></description><category></category></item><item><title><![CDATA[H5适配中的一些概念]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/81259451</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/81259451</guid><author>JSCTO</author><pubDate>Sat, 28 Jul 2018 11:53:20 +0800</pubDate><description><![CDATA[屏幕尺寸

我们通常所说的iPhone5屏幕尺寸为4英寸、iPhone6屏幕尺寸为4.7英寸，指的是显示屏对角线的长度



虚拟试图(visual viewport)

可以认为是设备自己的宽度，也叫视口尺寸指的是浏览器可视区域的宽度。



布局试图(layout viewport)

可以认为是虚拟的窗口，也可以片面的理解为苹果或者安卓手机屏幕的分辨率(注：是分辨率而非手机屏幕大小)



...]]></description><category></category></item><item><title><![CDATA[Node 环境变量 process.env.NODE_ENV 之webpack应用]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/80507148</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/80507148</guid><author>JSCTO</author><pubDate>Wed, 30 May 2018 11:02:23 +0800</pubDate><description><![CDATA[Node 环境变量 process.env.NODE_ENV 之webpack应用



Node 环境变量 process.env.NODE_ENV 之webpack应用
进入主题
一、接下来进入主题，开始配置 webpack.config.js:
二、通过webpack -p参数控制
三、通过 webpack.DefinePlugin 定义
四、在config文件里获取NODE_ENV值
五、...]]></description><category></category></item><item><title><![CDATA[webpack]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/80506444</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/80506444</guid><author>JSCTO</author><pubDate>Wed, 30 May 2018 10:31:59 +0800</pubDate><description><![CDATA[一、webpack3.x.x基本介绍


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


例子： 
新建hello.js执行命令 webpack hello...]]></description><category></category></item><item><title><![CDATA[js中的手势]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/80434193</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/80434193</guid><author>JSCTO</author><pubDate>Thu, 24 May 2018 14:38:30 +0800</pubDate><description><![CDATA[js触摸事件

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

【总...]]></description><category></category></item><item><title><![CDATA[Array数组之reduce:reduceRight]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/80434121</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/80434121</guid><author>JSCTO</author><pubDate>Thu, 24 May 2018 14:35:16 +0800</pubDate><description><![CDATA[Array数组之reduce/reduceRight



reduce

reduce()方法对累加器和数组中的每个元素（从左到右）应用一个函数，将其减少为单个值。



语法



arr.reduce(callback[, initialValue])

callback 
执行数组中每个值的函数，包含四个参数：


accumulator-累加器累加回调的返回值; 它是上一次调用回调时返回...]]></description><category></category></item><item><title><![CDATA[#angular 国际化]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/78783291</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/78783291</guid><author>JSCTO</author><pubDate>Tue, 12 Dec 2017 16:31:32 +0800</pubDate><description><![CDATA[angular国际化国际化概念一、I18n and L10n in AngularJS 
1. 什么是I18n和L10n? 
　　国际化（Internationalization），简称I18n，是让产品开发在一个他们可以简单地对产品进行语言、文化的本地化的方法的规范。本地化（Localization），简称L10n，一个使得应用、文本有适应特殊的文化或者语言市场的能力的规范。对于应用开发者，使一个]]></description><category></category></item><item><title><![CDATA[初识TypeScript]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/78450582</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/78450582</guid><author>JSCTO</author><pubDate>Sun, 05 Nov 2017 17:05:58 +0800</pubDate><description><![CDATA[字符串新特性
多行字符串
字符串模板
自动拆分字符串
参数新特性
参数类型
默认参数
可选参数
函数新特性
Rest and Spread 操作符
genarator函数
destructuring析构表达式
在对象中进行析构
在数组中进行析构
表达式与循环
箭头表达式
forEachfor infor of
面向对象特性
TypeScript类
访问控制符
类的继承
泛型
接口
模块
注解
类型定]]></description><category></category></item><item><title><![CDATA[angular中copy和extend用法实例]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/78449594</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/78449594</guid><author>JSCTO</author><pubDate>Sun, 05 Nov 2017 15:00:38 +0800</pubDate><description><![CDATA[angular.copy() 深拷贝定义： 
复制一个对象或者一个数组 
1. 如果省略了destination，一个新的对象或数组将会被创建出来；  
2. 如果提供了destination，则source对象中的所有元素和属性都会被复制到destination中；  
3. 如果source不是对象或数组（例如是null或undefined）, 则返回source；  
4. 如果source和]]></description><category></category></item><item><title><![CDATA[js正则表达式-前瞻]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/78087651</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/78087651</guid><author>JSCTO</author><pubDate>Mon, 25 Sep 2017 17:36:33 +0800</pubDate><description><![CDATA[js正则表达式-前瞻JS 正则表达式是 JS 学习过程中的一大难点，繁杂的匹配模式足以让人头大，不过其复杂性和其学习难度也赋予了它强大的功能。文章从 JS 正则表达式的正向前瞻说起，实现否定匹配的案例。本文适合有一定 JS 正则表达式基础的同学，如果对正则表达式并不了解，还需先学习基础再来观摩这门否定大法。一、标签过滤需求不知道大家在写JS有没有遇到过这样的情况，当你要处理一串字符串时，需要写一个正]]></description><category></category></item><item><title><![CDATA[js正则表达式]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/78087605</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/78087605</guid><author>JSCTO</author><pubDate>Mon, 25 Sep 2017 17:34:02 +0800</pubDate><description><![CDATA[js正则表达式RegExp下的方法test在字符串中测试模式匹配，成功返回true，失败返回false 
exec在字符串中执行匹配搜索，返回结果数组字符串的正则表达式方法
  方法
  含义  match(pattern)
  返回pattern中的子串或null
  replace(pattern,replacement)
  用replacement替换pattern
  search(pat]]></description><category></category></item><item><title><![CDATA[Git]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/75195750</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/75195750</guid><author>JSCTO</author><pubDate>Sun, 16 Jul 2017 09:32:22 +0800</pubDate><description><![CDATA[GitGit安装进入官网下载安装界面Git，选择符合自己系统的安装包 
which -a git 
git -version 
ls -ah 显示.git目录 
初始化一个Git仓库，使用git init命令。 
添加文件到Git仓库，分两步： 
第一步，使用命令git add file.name，注意，可反复多次使用，添加多个文件。 
第二步，使用命令git commit -m ‘注释’，完成。设]]></description><category></category></item><item><title><![CDATA[关于json的几个方法]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/75041519</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/75041519</guid><author>JSCTO</author><pubDate>Wed, 12 Jul 2017 21:47:20 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[面向对象与原型原稿]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/72775746</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/72775746</guid><author>JSCTO</author><pubDate>Fri, 26 May 2017 23:18:52 +0800</pubDate><description><![CDATA[一．创建对象创建一个对象，然后给这个对象新建属性和方法。var box = new Object();                 //创建一个Object对象
box.name = 'Lee';                       //创建一个name属性并赋值
box.age = 100;                          //创建一个age属性并赋值
box.run]]></description><category></category></item><item><title><![CDATA[面向对象与原型重难点]]></title><link>https://blog.youkuaiyun.com/JSCTO/article/details/72775738</link><guid>https://blog.youkuaiyun.com/JSCTO/article/details/72775738</guid><author>JSCTO</author><pubDate>Fri, 26 May 2017 23:17:41 +0800</pubDate><description><![CDATA[一、创建对象
普通模式 
优点： 
缺点：每次实例化产生大量重复的代码
工厂模式 
优点：集中实例化解决普通模式实例化产生大量重复代码的问题 
缺点：无法区分谁到底是哪个对象的实例
构造函数 
优点：既解决普通模式重复实例化的问题也解决工厂模式对象识别问题 
缺点：两个实例化后的属性或方法不相等
二、5种函数模式
原型模式 
优点：解决构造函数两个实例化后的属性或方法不相等的问题 
缺点：无法传参，]]></description><category></category></item></channel></rss>