原创 全局變量/預解析/For循環的優化/eval()/parseInt()和Number/左花括號的位置

全局變量,你的JavaScript應用程序和web頁面上的所有代碼都共享了這些全局變量。包括:第三方JS庫,廣告代碼... 減少全局變量的方法:最直接的使用var聲明變量,分割命名空間,函數立即執行。 function f(){ va

原创 工作中Tortoise SVN遇到的一個問題,Commit failed (details follow): Authorization failed

重裝了下系統,然後用SVN的時候發現能checkout能update就是不能commit,提示用戶權限無法認證,搞了好久,重裝過,重啓等等方法,最後發現是由於svn的URL的問題,有問題時用的svn://協議,這種協議下只讀,所以要改成h

原创 JavaScript的繼承機制(加我的理解)/原型鏈/屬性查找/hasOwnProperty

JavaScript的繼承機制 JavaScript 不包含傳統的類繼承模型,而是使用 prototype 原型模型,雖然這經常被當作是 JavaScript 的缺點被提及,其實基於原型的繼承模型比傳統的類繼承還要強大。實現傳統的類繼承模

原创 關於__proto__和prototype

首先放一個在stackoverflow上的圖片,該問題的地址: http://stackoverflow.com/questions/650764/how-does-proto-differ-from-constructor-proto

原创 函數表達式和函數聲明/()是一個分組操作符/Module模式/匿名閉包/克隆/function的執行

函數表達式和函數聲明: function foo(){} // 聲明,因爲它是程序的一部分 var bar = function foo(){}; // 表達式,因爲它是賦值表達式的一部分 函數聲明會在代碼塊中被提到最前面,而表達式不會。

原创 this指針

this對象是和執行上下文息息相關的一個對象,因此它也被稱爲執行上下文對象(context object),即激活當前執行上下文的執行上下文(an object in which context the execution context

原创 bind,call,apply/setTimeout, setInterval傳遞參數和取消

bind,call,apply func.call(obj, arg1, arg2, ..., argn); func.apply(obj, [arg1, arg2, ..., argn]); var newFun = func.bind

原创 JavaScript單線程/瀏覽器事件驅動

首先看一個例子: function foo() {   console.log('first');   setTimeout((function(){     console.log('second');   }),5); } for(v

原创 Object.defineProperty()/Object.keys()

Object.defineProperty() 方法直接在一個對象上定義一個新屬性,或者修改一個已經存在的屬性, 並返回這個對象。 Object.defineProperty(obj, prop, descriptor) Obje