Time of Update: 2017-01-13
在實際開發中,我們有時需要知道對象的所有屬性,js原生給我們提供了一個很好的方法:Object.keys,該方法返回一個數組var obj = { 'a':'123', 'b':'345',};console.log(Object.keys(obj)); //['a','b'] 值得注意的是,如果
Time of Update: 2017-01-13
1.Window對象是所有用戶端JavaScript特性和API的主要存取點。Window對象中的一個重要屬性是document,它引用Document對象。JavaScript程式可以通過Document對象和它包含的Element對象遍曆和管理文檔。 2.URL中的JavaScript在URL後面跟一個JavaScript:協議限定符。裡面的代碼會作為JavaScript代碼進行運行,需用分號分割。如:<a
Time of Update: 2017-01-13
在寫Javascript的時候經常遇到數組去重的問題,一直在基於jQuery寫代碼,在遇到數組需要去重的時候經常使用$.unique方法,由於開發測試環境是chrome瀏覽器,所以並沒有察覺到自己已經錯了這麼久,直到昨天才發現$.unique在IE中是存在一些問題。 查看了jQuery的API,原來$.unique只處理刪除DOM元素數組,而不能處理字串或者數字數組。看了下jQuery源碼,$.unique使用了Sizzle.uniqueSort的方法,好像在chrome/Firefo
Time of Update: 2017-01-13
經常遇到要對時間戳記進行格式化,但基本上都是臨時需要隨時寫,從未整理過,今天又遇到對時間戳記進行格式化,於是記載下來,以後需要直接拿過來用。廢話不多說,先把各種格式化方法貼給大家var myDate = new Date();myDate.getYear(); //擷取當前年份(2位)myDate.getFullYear(); //擷取完整的年份(4位,1970-????)myDate.getMonth(); //擷取當前月份(0-11,0代表1月)myDate.getDate();
Time of Update: 2017-01-13
JavaScript中沒有塊級範圍的概念。這意味著在塊語句中定義的變數,實際上是在包含函數中而非語句中建立的。function outputNumbers(count){ for(var i = 0; i < count; i++){ alert(i); &nbs
Time of Update: 2017-01-13
在前端開發中尤其是在nodejs開發中經常會遇到這樣的情境(以ajax為例):有3個(或者更多個)Ajax請求,並且第2個請求依賴於第1個,第3個請求依賴於第2個,那我們可能就會在發第一個Ajax後回調再執行第二個Ajax,第二個執行後再在回調裡面執行第三個,如此就形成了回調金字塔了,也顯得複雜,當然這種問題也有許多外掛程式,如:Promise、async等。 自己寫了一個簡單的實現方法:/** * 控制流程/同步 * @param {Array} arr *
Time of Update: 2017-01-13
基本概念【原型鏈】每個建構函式都有一個對象,原型對象都包含一個指向建構函式的指標,而執行個體都包含一個指向原型對象的內部指標。那麼,如果原型對象等於另一個原型的執行個體,此時的原型對象將包含一個指向另一個原型的指標,相應地,另一個原型中也包含著一個指向另一個建構函式的指標。如果另一個原型又是另一個原型的執行個體,那麼上述關係依然成立。如此層層遞進,就構成了執行個體與原型的鏈條。【原型對象】這個對象包含可以由特定類型的所有執行個體共用的屬性和方法。所有參考型別預設都繼承了Object,而這個繼承也
Time of Update: 2017-01-13
一:什麼是單體模式: 是什麼:將程式碼群組織為一個邏輯單元,這個單元中的代碼通過單一的變數進行訪問。只要單體對象存在一份執行個體,就可以確信自己的所有代碼使用的是同樣的全域資源。 用途:1.用來劃分命名空間,減少網頁中全域變數的數目。 2.在分支技術中用來封裝瀏覽器之間的差異。 3.單體對象建立的命名空間可以快速清除全域變數。 4.增強模組性 關於單體模式的好壞,等你看完所有的講解之後再告訴你哦.......二:單體結構:1.最簡單的單體就是一個對象字面量。var&nbs
Time of Update: 2017-01-13
本文我們虛擬一個JavaScript的入口main函數作為程式的起點,這樣可以讓我們對JS有更深入的學習和理解。一、JavaScript檔案實際入口JavaScript檔案交給JS引擎運行時,JS引擎是從JavaScript檔案的頂部由上到下逐條執行語句,直到檔案尾部執行完每一條js代碼。二、JavaScript的範圍鏈、全域範圍和全域對象JavaScript中的每個函數在執行時都會產生一個新的範圍。具體來說,在執行流程進入函數時會建立一個新的範圍,在函數執行完成退出時會銷毀這個範圍。函數的形參
Time of Update: 2017-01-13
Overview藉助class
Time of Update: 2017-01-13
函數傳參小樣本一:fnA(1,2); fnA(2,3); function fnA(a,b) { alert(a+b); } 函數傳參小執行個體一:CSS:body,ul{margin:0;padding:0;} li{ list-style:none;} .box{width:200px; margin:20px auto;} .box ul{
Time of Update: 2017-01-13
伴隨著今年10月底HTML5標準版的發布,未來使用H5的情境會越來越多,這是令web開發人員歡欣鼓舞的事情。然而有一個現實我們不得不看清,那就是IE系列瀏覽器還佔有一大部分市場份額,以IE8、9為主,windows8.1的使用者已經用上了IE10/11,而考慮我國的國情,IE6、7依然存留不少。在我們放手用HTML5開發的時候,新特性支援度檢測就是必不可少的了。一種方式是用navigator.userAgent或navigator.appName來檢測瀏覽器類型和版本,不過這種方式不是很可靠,瀏
Time of Update: 2017-01-13
第一種:也是最笨的吧。Array.prototype.unique1 = function () {var r = new Array();label:for(var i = 0, n = this.length; i < n; i++) {for(var x = 0, y = r.length; x < y; x++) {if(r[x] == this[i]) {continue label;}}r[r.length] = this[i];}return
Time of Update: 2017-01-13
在實際前端開發中,我們使用replace進行字串的替換,如:var str = '1231';str.replace('1','a'); //'a231' 如果想要替換字串中所有的某個字元,可以使用正則:var str = '1231';str.replace(/1/g,'a'); //'a23a'但是如果我們想要替換變數,用上述的方法就不行了:var str = '1231';var c = '1';str.replace(/c/g,'a'); //'1231
Time of Update: 2017-01-13
瀏覽器類型⑴瀏覽器特有屬性 ⑵根據useragent 瀏覽器版本 ⑴根據useragent對於手機瀏覽器判斷1.如何判斷是否為移動終端 利用正則match,匹配navigator.useragent是否含有字串applewebkit*****mobile 安卓qq瀏覽器hd版 只有applewebkit例子<script type="text/javascript">var u = navigator.userAgent, app =
Time of Update: 2017-01-13
做頁面時,如果想做一個連結點擊後不做任何事情,或者響應點擊而完成其他事情,可以設定其屬性 href = "#",但是,這樣會有一個問題,就是當頁面有捲軸時,點擊後會返回到頁面頂端,或者是跳到設定的錨點的地方,使用者體驗不好。 通常的用法為:<a href="javascript:void(0)">單擊此處看看效果</a>
Time of Update: 2017-01-13
1,閉包是什麼(百度百科定義)--閉包是可以包含自由(未綁定到特定對象)變數的代碼塊;這些變數不是在這個代碼塊內或者任何全域上下文中定義的,而是在定義代碼塊的環境中定義(局部變 量)。“閉包” 一詞來源於以下兩者的結合:要執行的代碼塊(由於自由變數被包含在代碼塊中,這些自由變數以及它們引用的對象沒有被釋放)和為自由變數提供綁定的計算環境 (範圍)。 W3C
Time of Update: 2017-01-13
JavaScript中的delete是一個操作符(也是一個關鍵字),它可以用來刪除對象中的指定屬性,也可用於刪除數組中的元素。delete刪除對象屬性var obj = { };obj.x = 20;obj.y = 10;// 刪除obj對象的屬性x,obj不再具有x屬性delete obj.x; 值得注意的是,JS中的delete只是刪除對象的屬性本身,而不是刪除該屬性的值。只不過在多數情況下,該屬性的值會由於失去了引用,而被記憶體回收。var obj = { };obj.x = {
Time of Update: 2017-01-13
npm 的模組都是 JavaScript 語言寫的,但瀏覽器用不了,因為不支援 CommonJS 格式。要想讓瀏覽器用上這些模組,必須轉換格式。本文介紹瀏覽器載入 CommonJS 的原理,並且給出一種非常簡單的實現。一、原理瀏覽器不相容CommonJS的根本原因,在於缺少四個Node.js環境的變數。 module
Time of Update: 2017-01-13
閉包的特性閉包有三個特性:1.函數嵌套函數2.函數內部可以引用外部的參數和變數3.參數和變數不會被記憶體回收機制回收閉包的定義及其優缺點閉包