<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zsr1860的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zsr1860</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zsr1860]]></copyright><item><title><![CDATA[JSON.stringify() 和 JSON.parse() 的详细使用]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/107442893</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/107442893</guid><author>zsr1860</author><pubDate>Sun, 19 Jul 2020 16:24:46 +0800</pubDate><description><![CDATA[JSON.stringify() 和 JSON.parse() 的详细使用]]></description><category></category></item><item><title><![CDATA[杂记——delete操作符]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/81153167</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/81153167</guid><author>zsr1860</author><pubDate>Sun, 22 Jul 2018 11:56:57 +0800</pubDate><description><![CDATA[看以下代码输出会是什么？

var x = 1;
var output = (function(){
    delete x;
    return x;
})();

console.log(output);

代码运行的结果是：



1



delete操作符的基本原理

delete操作符通常用来删除对象的属性：

var o = { x: 1 };   
delete o.x; //...]]></description><category></category></item><item><title><![CDATA[transition详解]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/80310006</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/80310006</guid><author>zsr1860</author><pubDate>Mon, 14 May 2018 17:42:45 +0800</pubDate><description><![CDATA[transition 提供了一种在更改CSS属性时控制动画速度的方法。 其可以让属性变化成为一个持续一段时间的过程，而不是立即生效的。

transition 可以决定哪些属性发生动画效果 (明确地列出这些属性)，何时开始 (设置 delay），持续多久 (设置 duration) 以及如何动画 (定义timing funtion，比如匀速地或先快后慢)。

语法

transition: &amp;amp;lt...]]></description><category></category></item><item><title><![CDATA[关于js数据类型中“基本类型”与“引用类型”的区别]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/80232963</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/80232963</guid><author>zsr1860</author><pubDate>Thu, 10 May 2018 12:59:44 +0800</pubDate><description><![CDATA[两个例子，如下：

例一：

var num1 = 1;
var num2 = num1;
console.log(num1) //1
console.log(num2) //1

num2 = 2; //修改num2
console.log(num1) //1
console.log(num2) //2

例二：

var obj1 = {x: 1, y: 2};
var obj2 = obj1]]></description><category></category></item><item><title><![CDATA[Promise介绍——基础篇]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79818200</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79818200</guid><author>zsr1860</author><pubDate>Wed, 04 Apr 2018 17:54:02 +0800</pubDate><description><![CDATA[在实际的Javascript开发中，我们会使用到很多的异步开发。如果我们需要在页面中实现一系列的动画效果，当毎一个动国效果完成后，就会通过一个回调函数通知逻辑代码，该动画效果完成了。为了实现动画效果的顺序展示，我们需要把这些动画效果的方法通过回调函数“串”起来。

animate1(() =&amp;gt; {
    animate2(() =&amp;gt; {
        animate3(() =&amp;g...]]></description><category></category></item><item><title><![CDATA[杂记——setTimeout()]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79817479</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79817479</guid><author>zsr1860</author><pubDate>Wed, 04 Apr 2018 15:33:32 +0800</pubDate><description><![CDATA[# 定义和用法

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

setTimeout(function(){ alert(&quot;Hello&quot;); }, 1000);

运以上代码，浏览器将在3秒后弹出“Hello”。

# 语法


  setTimeout(code, milliseconds, param1, param2, …) 
  setTimeout(func...]]></description><category></category></item><item><title><![CDATA[用JavaScript代码生成一个自增的ID]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79805109</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79805109</guid><author>zsr1860</author><pubDate>Tue, 03 Apr 2018 16:23:50 +0800</pubDate><description><![CDATA[没有generator之前我们得这样写：（用到闭包）

function next_id(){
    var current_id = 0;
    return function (){
        return ++current_id;
    }
}

var g =  next_id();

for( let i = 0; i &amp;lt; 10; i++ ){
    console...]]></description><category></category></item><item><title><![CDATA[Generator（生成器）]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79803038</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79803038</guid><author>zsr1860</author><pubDate>Tue, 03 Apr 2018 16:12:09 +0800</pubDate><description><![CDATA[generator是ES6中非常强悍的一个新特性。

用generator 实现斐波那契数列，如下：



function* fifo (){
    let a = 0;
    let b = 1;

    yield a;
    yield b;

    while(true){
        let next = a+b;
        a = b;
        b = n...]]></description><category></category></item><item><title><![CDATA[JavaScript实现两个变量值交换]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79401678</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79401678</guid><author>zsr1860</author><pubDate>Thu, 01 Mar 2018 16:41:58 +0800</pubDate><description><![CDATA[一个经典的问题，“两个变量之间值的交换”。

1、 引入临时变量进行数据交换



tmp = a;
a = b;
b = tmp; 

引入临时变量，最最基本的方法，看着很low，但效率确实很高，经典的才是最优雅的。

2、 用对象进行数据交换



a = {a : b, b : a};
b = a.b;
a = a.a;

利用对象的键值对进行数据交换

3、用数组进行数据交换（一）



...]]></description><category></category></item><item><title><![CDATA[JS实现斐波那契数列]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79399331</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79399331</guid><author>zsr1860</author><pubDate>Wed, 28 Feb 2018 14:44:24 +0800</pubDate><description><![CDATA[斐波那契数列（Fibonacci sequence），又称黄金分割数列、因数学家列昂纳多·斐波那契（Leonardoda Fibonacci）以兔子繁殖为例子而引入，故又称为“兔子数列”，指的是这样一个数列：1、1、2、3、5、8、13、21、34、55……

从第3项开始，每一项都等于前两项之和。

js实现如下：



function fibo() {
    var a = 0;
    ...]]></description><category></category></item><item><title><![CDATA[用canvas画个表]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/79015565</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/79015565</guid><author>zsr1860</author><pubDate>Sat, 20 Jan 2018 10:53:47 +0800</pubDate><description><![CDATA[用canvas画个表]]></description><category></category></item><item><title><![CDATA[按位运算符 & 和 |]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78962065</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78962065</guid><author>zsr1860</author><pubDate>Wed, 03 Jan 2018 18:02:06 +0800</pubDate><description><![CDATA[一、概述按位操作符（Bitwise operators） 将其操作数（operands）当作32位的比特序列（由0和1组成），而不是十进制、十六进制或八进制数值。例如，十进制数9，用二进制表示则为1001。按位操作符操作数字的二进制形式，但是返回值依然是标准的JavaScript数值。下面的表格总结了JavaScript中的按位操作符： 
二、& (按位与)只有两个操作数相应的比特位都是1时，结果才]]></description><category></category></item><item><title><![CDATA[jQuery实现打字机效果]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78961692</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78961692</guid><author>zsr1860</author><pubDate>Wed, 03 Jan 2018 15:48:59 +0800</pubDate><description><![CDATA[效果展示入口：https://skyfood.github.io/typewriter/demo.html

html代码：

div id="oDiv">
    p>又回到春末的五月p>
    p>凌晨的集市人不多p>
    p>小孩在门前唱着歌p>
    p>阳光它照暖了溪河p>
    p>柳絮乘着大风吹p>
    p>树影下的人想睡p>
    p>沉默的人 从此刻p>]]></description><category></category></item><item><title><![CDATA[杂记——回到顶部的小效果]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78898365</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78898365</guid><author>zsr1860</author><pubDate>Wed, 03 Jan 2018 09:43:28 +0800</pubDate><description><![CDATA[效果展示入口：https://skyfood.github.io/topback/demo.html

html代码：

div id="content"> 
    向下拖动滚动条
div>
div id="toTop">"top.png" alt="">div>

css代码：



html, body {
    margin: 0;
    padding: 0;
}
#content]]></description><category></category></item><item><title><![CDATA[函数式编程初探]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78952675</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78952675</guid><author>zsr1860</author><pubDate>Tue, 02 Jan 2018 16:33:17 +0800</pubDate><description><![CDATA[简单说，”函数式编程”是一种”编程范式”（programming paradigm），也就是如何编写程序的方法论。它属于”结构化编程”的一种，主要思想是把运算过程尽量写成一系列嵌套的函数调用。]]></description><category></category></item><item><title><![CDATA[页面重绘和回流以及优化]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78910633</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78910633</guid><author>zsr1860</author><pubDate>Wed, 27 Dec 2017 11:54:43 +0800</pubDate><description><![CDATA[在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解，页面是怎么把html结合css等显示到浏览器上的，下面的流程图显示了浏览器对页面的呈现的处理流程。可能不同的浏览器略微会有些不同。但基本上都是类似的。
浏览器把获取到的HTML代码解析成1个DOM树，HTML中的每个tag都是DOM树中的1个节点，根节点就是我们常用的document对象。DOM树里包含了所有HTML标签，]]></description><category></category></item><item><title><![CDATA[JavaScript中二元运算符 && 和 ||]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78908046</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78908046</guid><author>zsr1860</author><pubDate>Wed, 27 Dec 2017 06:24:49 +0800</pubDate><description><![CDATA[二元运算符 && 和 ||
alert(1 && 2)
alert(1 || 0)]]></description><category></category></item><item><title><![CDATA[一个超简单的闭包示例]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78892315</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78892315</guid><author>zsr1860</author><pubDate>Mon, 25 Dec 2017 14:20:03 +0800</pubDate><description><![CDATA[一个超简单的闭包示例]]></description><category></category></item><item><title><![CDATA[学习Javascript闭包（Closure）]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78891833</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78891833</guid><author>zsr1860</author><pubDate>Mon, 25 Dec 2017 13:40:46 +0800</pubDate><description><![CDATA[作者： 阮一峰

文章出处：http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html



闭包（closure）是Javascript语言的一个难点，也是它的特色，很多高级应用都要依靠闭包实现。

下面就是我的学习笔记，对于Javascript初学者应该是很有用的。

一、变量的作用域

要理解闭包，首先必须]]></description><category></category></item><item><title><![CDATA[数据埋点的基础认识]]></title><link>https://blog.youkuaiyun.com/zsr1860/article/details/78858971</link><guid>https://blog.youkuaiyun.com/zsr1860/article/details/78858971</guid><author>zsr1860</author><pubDate>Thu, 21 Dec 2017 00:36:43 +0800</pubDate><description><![CDATA[数据分析是我们获得需求的来源之一，通过对数据的比对，对数据趋势的分析，能让我们发现哪些环节存在问题，哪些环节有提高空间。同时，数据分析也是检验功能是否有效，是否受欢迎的重要佐证。]]></description><category></category></item></channel></rss>