Time of Update: 2017-01-19
在項目中需要取得多個數組的交集,故本例只是適用於特定情境。比如A數組 var a = {1000,10001,10002,10003}; B數組 var b = {10002, 10003}; C數組var c = {10003}; 需要取得這三個數組的交集數組。
Time of Update: 2017-01-19
原來用 js 讀寫 cookie 一直沒有注意一個問題:相同的 key 值,不同的 domain (locahost.dev.xxx.com, dev.xxx.com, xxx.com 等) 是可以同時存在於Cookie 裡的 , document.cookie 能把這幾個 cookie 都讀出來,但是沒有 domain 資訊. 我也試著找用什麼方法能把 cookie 的 domain 資訊讀取出來,可是很不幸, 沒有找到(不知道你有沒有什麼方法能把 domain 資訊給讀出來, 如有,請賜教)
Time of Update: 2017-01-19
前段時間工作中用到Json資料,希望將一些簡單的增刪改查放到用戶端來做,這樣也能減少伺服器端的壓力。分別尋找了幾個可以對Json進行操作的javascript 類庫,最終選定了TAFFY
Time of Update: 2017-01-19
原理:根據navigator.userAgent傳回值識別 實現: 複製代碼 代碼如下: function validBrowser(){ var u_agent = navigator.userAgent; var browser_name='Failed to identify the browser'; if(u_agent.indexOf('Firefox')>-1){ browser_name='Firefox'; }else
Time of Update: 2017-01-19
javascript具有自動垃圾收集機制,也就是說,執行環境會負責管理代碼執行過程中的使用的記憶體。而在C和C++之類的語言中,開發人員的一項基本任務就是手動跟蹤記憶體的使用方式,這是造成許多問題的一個根源。在編寫javascript程式時候,開發人員不用再關心記憶體使用量的問題,所需記憶體的分配
Time of Update: 2017-01-19
當今 JavaScript 大行其道,各種應用對其依賴日深。web 程式員已逐漸習慣使用各種優秀的 JavaScript 架構快速開發 Web 應用程式,從而忽略了對原生 JavaScript 的學習和深入理解。所以,經常出現的情況是,很多做了多年 JS 開發的程式員對閉包、函數式編程、原型總是說不清道不明,即使使用了架構,其程式碼群組織也非常糟糕。這都是對原生 JavaScript 語言特性理解不夠的表現。要掌握好 JavaScript,首先一點是必須摒棄一些其他進階語言如 Java、C#
Time of Update: 2017-01-19
==運算子和===運算子用來檢測兩個值是否相等,它們採用了具有同一特質的兩個不同定義。這兩個運算子都接受任意類型的運算數,如果兩個運算數相等,它們都返回true,否則都返回false,===運算子是等同運算子,它採用嚴格的同一特質定義檢測兩個運算數是否完全相同,親們注意是完全相同哦。==運算子是相等運算子,它採用比較寬鬆的同一特質定義比較兩個運算數是否相等。這樣概念有個基本認識。下面說下具體判定兩個值是相等情況吧。===運算子兩個值比較1,如果兩個實值型別不同,它們就不相同2,如果兩個值的類型是
Time of Update: 2017-01-19
去除字串兩端的空格,是字串處理非常常用的方法,非常遺憾的是JavaScript沒有這三個方法,只有我們自訂了: 第1步,給String新增成員 複製代碼 代碼如下: String.prototype.Trim = function(){ return Trim(this);} String.prototype.LTrim = function(){return LTrim(this);} String.prototype.RTrim = function(){return RTrim(this)
Time of Update: 2017-01-19
驗證規則:1. Broadcast mac address (FF:FF:FF:FF::FF:FF:)2. IPv4 & IPv6 multicast mac address3. Numeric charactercode list :複製代碼 代碼如下:function isValidMacAddress(address) { var c = ''; var i = 0, j = 0;
Time of Update: 2017-01-19
迴圈是大多數程式設計語言都具備的準系統,JS也不例外,不同之處在於JS是解釋型語言,運行於瀏覽器環境中,用戶端的軟硬體條件會對JS執行效率產生很大的影響。然而用戶端環境對於開發人員是未知、多樣的,並且難以改變,所以最佳化代碼品質是提高代碼效率的主要途徑。JS代碼中,迴圈是比較容易導致效能問題的因素。理解迴圈特性進而有針對性地進行最佳化也許會帶來不錯的效能提升。for、while、do-while迴圈:這三種迴圈本身的迴圈效率相差不多,所以只要根據適合的應用情境選擇即可。以for迴圈為例:複製代碼
Time of Update: 2017-01-19
寫這個主要是為瞭解決一些常見網頁特效在js解析時預期與效果不同。 原始代碼 : 複製代碼 代碼如下: //測試代碼 window.onscroll = function(){ alert("haha"); } 裝在script標籤內 滑鼠滑動之後一直惦記 提示框才可以,所以很不方便 , 而且 目的是滑鼠滑動後 只執行一次事件,這個效果顯然和實際不符合吧。 //代碼改進--增加延時器。 既然scroll事件是一個連續觸發事件,那我設定一個延遲器,在使用者滑動滑鼠的時間後執行該函數
Time of Update: 2017-01-19
閉包是ECMAScript一個很重要的特徵,但是卻很難用合適的定義來描述它。雖然閉包很難清晰地描述,但是,卻很容易建立,或者說,不小心建立。然而,閉包的存在其實是有一定的潛在問題的。為了避免“不小心”地建立閉包,以及更好地利用閉包的優點,有必要理解閉包的機制。閉包的定義 關於閉包,有太多的定義,特別是有一些定義非常抽象,象這個:A "closure" is an expression (typically a function) that can have free
Time of Update: 2017-01-19
一、document.formName.item(”itemName”) 問題 問題說明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements["elementName"];Firefox下,只能使用document.formName.elements["elementName"]。 解決方案:統一使用document.formName.elements["elementName"]。
Time of Update: 2017-01-19
des.js 複製代碼 代碼如下: // //THIS SOFTWARE IS PROVIDED "AS IS" AND //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE //ARE DISCLAIMED. IN NO EVENT SHALL THE
Time of Update: 2017-01-19
背景:寫一個簡單的聊天系統,發出Htpp的Url實現跳轉加上a標籤。 實現代碼: 複製代碼 代碼如下: String.prototype.httpHtml = function(){ var reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g; return this.replace(reg, '<a target=_blank href="$1$2">$1$2</a>'); }; 摘錄:
Time of Update: 2017-01-19
漸層(Gradient)是美學中一條重要的形式美法則,與其相對應的是突變。形狀、大小、位置、方向、色彩等視覺因素都可以進行漸層。在色彩中,色相、明度、純度也都可以產生漸層效果,並會表現出具有豐富層次的美感。本文主要講述兩種顏色RGB數值的漸層演算法。已知:A=50,B=200,A、B之間平均分成3份(Step=3),求每份的數值(StepN)分別是多少。公式:Gradient = A + (B-A) / Step *
Time of Update: 2017-01-19
大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 迴圈; (2)for..in迴圈; 使用for迴圈進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in迴圈時,大家可要注意了,為什麼這麼說呢?大家聽我娓娓道來.... javascript提供了一種特殊的迴圈(也就是for .. in迴圈),用來迭代對象的屬性或數組的每個元素,for...in迴圈中的迴圈計數器是字串,而不是數字。它包含當前屬性的名稱或當前數組元素的索引。 案例一: 複製代碼 代碼如下:
Time of Update: 2017-01-19
複製代碼 代碼如下: function gaga(obj){ // 值允許輸入一個小數點和數字 obj.value = obj.value.replace(/[^\d.]/g,""); //先把非數位都替換掉,除了數字和. obj.value = obj.value.replace(/^\./g,""); //必須保證第一個為數字而不是. obj.value = obj.value.replace(/\.{2,}/g,"."); //保證只有出現一個.而沒有多個. obj.value =
Time of Update: 2017-01-19
總結了一些方法,把它壓縮成了一個函數對象,只有幾十行代碼,使用方法簡單明了存為ojbUrl.js複製代碼 代碼如下:/* 說明:本代碼可自由複製修改並且使用,但請保留作者資訊!Author: Kevin WebSite: http://iulog.com/ QQ:251378427JS 操作 URL 函數使用說明:初始化 var myurl=new objURL(); //也可以自訂URL: var myurl=new
Time of Update: 2017-01-19
現在的瀏覽器裡,有一個十分有趣的功能,你可以在不重新整理頁面的情況下修改瀏覽器URL;在瀏覽過程中.你可以將瀏覽曆史儲存起來,當你在瀏覽器點擊後退按鈕的時候,你可以沖瀏覽曆史上獲得回退的資訊,這聽起來並不複雜,是可以實現的,我們來編寫些代碼。來看看它是如何工作的。複製代碼 代碼如下:var stateObject = {};var title = "Wow Title";var newUrl =