fezaoduke / 21DayRead

21天阅读
9 stars 0 forks source link

#21Day阅读# 2017-08-14 #5

Open fezaoduke opened 7 years ago

fezaoduke commented 7 years ago

第二期活动开始

倒数第21天

签到

izayl commented 7 years ago

数据可视化与 D3.js

fezaoduke commented 7 years ago

越是优秀的人越不会吵架

360 度评估:每个员工都接受来自上司,同事,组员的多方位评估,然后要求被评为 “有他没他一个样 “的职员改善工作方式。

onezane commented 7 years ago

什么是用户界面设计?

AboyJack commented 7 years ago

在无奈、彷徨、迷惘中体会禅(读金刚经)

zsio commented 7 years ago

自控力

benjamintshi commented 7 years ago

前言:

自从成为码农的第一天开始好像没有真正撸过一片自己的笔记,以往都是copy粘贴形式做笔记,现在来撸感觉不不晚。
CSS3特性calc分享

以往在界面上控制多个DIV按照固定沾满一个容器的时候,通常都是通过javascript来计算固定宽带,根据容器的总宽度做减法来实现, 并且在窗体发生改变的时候又要来一段代码,现在有了calc()这个属性,无疑是大大简化了计算的方法及代码。 比如: 一个DIV容器有3个DIV,前两个DIV占据200px + 300px, 这个时候第三个DIV需要沾满整个容器。

javascript:

$(".div3).css({
width:$(window).width() - 200 - 300 
})

css3:

.div3{
width: calc(100% - (200px + 300px)); //表达式支持 + - * / 计算方式。
}

总结:

有了这个属性,做自适应布局非常轻松。

shiiiiiiji commented 7 years ago

今天忘记带书回家,看了另外一本《全栈应用开发精益实践》 Day1.Web应用开发周期概览章节

caoyezi commented 7 years ago

今天看的js红宝书,第四章:变量作用域和内存问题:

  1. 检验引用类型 用instanceof、基本数据类型用typeof。
  2. 所有的函数的参数都是按值传递。
  3. 局部变量可以访问父级及全局变量(由内向外),全局或父级不能访问局部变量或函数。
  4. 垃圾回收机制氛围“标记清除”(--离开作用域的值将自动标记可以回收,将在垃圾回收期间被删除,绝大部分浏览器都采用)和“引用计数”(少数IE支持)。
  5. 管理内存:减少使用全局变量、全局对象属性以及循环引用变量等。
regiondavid commented 7 years ago

闭包学习笔记

闭包的定义

指有权访问另一个函数作用域的变量的 函数

常见的闭包形式及解释

function createComparison() {
    var a = 1;
    return function() {
        console.log(this)
        if(a == 1) {
            return true;
        }
    }
}

createComparison()();  
// window
//true

最后返回的这个函数是在全局作用域中调用的,但仍然能够调用 createComparison 内部的变量 a,这是因为内部返回的函数的作用域包含了 createComparison 的作用域。

当某个函数被调用时,会创建一个执行环境(execution context)及相应的作用域链。然后,使用 arguments 和其他命名参数的值来初始化函数的活动对象(activation object)。但在作用域链中,外部函数的活动对象始终处于第二位,外部函数的外部函数的活动对象处于第三位...直至作用域链终点的全局执行环境。

通常来说一个函数在初始化的时候,会预先创建一个包含全局变量对象的作用域链中,当调用时,会创建一个执行环境,并把当前的活动对象推入执行环境的前端。当执行完毕后,局部活动对象会被销毁。但是对于闭包函数而言,由于它引用了外部函数的活动对象,并在全局中去执行,导致其定义时的外部函数并不能被销毁,从而常驻内存中,直到闭包函数被销毁,才被销毁掉。这也就容易导致内存泄漏。常见的方法是可以手动解除闭包的引用。eg:

var result = createComparison()();
result == null;

因为闭包常会遇到的问题

当我们想要为一组li绑定点击事件时,我们通常会这么做:

<ul>
    <li>111</li>
    <li>111</li>
    <li>111</li>
    <li>111</li>
    <li>111</li>
</ul>
function bandClick() {
    var nodeLists = document.getElementsByTagName("li");
    for(var i = 0; i < nodeLists.length; i++) {
        nodeLists[i].addEventListener("click", function() {
            console.log(i);
        });
    }
}

然而我们发现结果却都是 4。这是因为我们调用的都是 i 的引用。

一种解决方法是下面这种:

function bandClick() {
    var nodeLists = document.getElementsByTagName("li");
    for(var i = 0; i < nodeLists.length; i++) {
        nodeLists[i].addEventListener("click", (function(num) {
            return function(){
                console.log(num);
            }
        })(i));
    }
}

这里我们每循环一次就将变量 i 的值按值传递给内部的函数,而内部都有一个闭包,这样就会保留着传进去的值。

luvshri commented 7 years ago

day1_初入react世界