原创 JS複習 -- 類型判斷

typeof 注意,雖然我們可以寫: console.log(typeof('miao~')) // string 但是,typeof卻是一個運算符,就像加減一樣!它的真實身份是一個一元操作符。 因此,人家的正經寫法是: cons

原创 JS複習 -- 作用域鏈

作用域鏈屬於執行上下文的屬性之一。 咦?你問我執行上下文是什麼: 當JS代碼執行一段可執行代碼的時候,就會創建對應的可執行上下文。每個執行上下文都有三個重要屬性: 1、變量對象 2、作用域鏈(後面我們就會了解,作用域鏈其實就

原创 異步JS -- 異步控制檯解惑

在使用console的時候有時候會有這樣的疑惑: 使用console打印出的結果和使用debugger看到的結果並不一樣?! What a f*ck? 今天,原因終於找到~ 因爲,(劃重點): 並沒有什麼規範或者一組需求指

原创 JS -- Immutable.js & React & Redux

亂入的Docker Docker是一個開源工具,能將一個WEB應用封裝在一個輕量級,便攜且獨立的容器裏,然後可以運行在幾乎任何服務環境下。 Docker的容器能使應用跑在任何服務器上並且表現一致。一個開發者在筆記本上建立的一個容器

原创 Mongoose -- Schemas Models Documents

Schemas Mongoose中,所有的東西都由Schemas開始。schema相當於是MongoDB的collection,並且定義了文檔的結構。 var mongoose = require('mongoose'); var

原创 [翻譯&摘抄] React 未來之函數式 setState

原文地址:Functional setState is the future of React 原文作者:Justice Mba 譯文出自:掘金翻譯計劃 原文鏈接:https://juejin.im/post/58cfcf6

原创 Mongoose populate方法

最近好忙啊,好久沒有來寫博客了~ 乾巴蝶! 還是那句話,寫一遍真的比看一遍要好很多! populate方法提供外鍵填充的功能。由於Mongoose是極具JavaScript特點的程序庫,提供了極其簡單和強大的填充功能,因此,p

原创 JS複習 -- 遞歸

兩個很常見的遞歸函數: // 階乘 function factorial(n) { if (n == 1) return n; return n * factorial(n - 1) } console.log(

原创 Mongoose -- quick start

使用mongoose之前,首先要確保你的電腦安裝了MongoDB和Node。 安裝MongoDB的教程可見: http://www.jianshu.com/p/1bb663918cfd 然後,我們可以用npm指令來安裝mongo

原创 JS 防抖

沒有防抖: var count = 1; var container = document.getElementById('container'); function getUserAction() { containe

原创 【譯文&摘抄】Angular、React、Vue的2017

原文地址:https://medium.com/unicorn-supplies/angular-vs-react-vs-vue-a-2017-comparison-c5c52d620176 作者:Jens Neuhaus We

原创 【譯文&摘抄】ECMAScript 6 裏面的私有變量

原文鏈接 : Private members in ES6 classes 本文已獲得原作者Greg Reimer的授權 譯文出自 : 掘金翻譯計劃 轉自:https://juejin.im/entry/572c0b2d2e

原创 JS複習 -- 執行上下文棧

思考題:下面兩段代碼有何不同: var scope = "global scope"; function checkscope(){ var scope = "local scope"; function f(){

原创 JavaScript -- ES6 迭代器和生成器

使用迭代器的目的:更高效的操作數據。使用迭代器可以使訪問數據和操作數據的過程中,不需要追蹤索引。 傳統的for循環: for (let I=0; I<10; I++){ ... // 訪問數據的過程中,需要追蹤索引

原创 JS & ES6 -- 語法糖:類

類的聲明 舉個栗子: class Cat{ constructor(name){ this.name = name // 這是私有屬性 } eatFish() { // 不需要 funct