關於JavaScript命名空間的一些心得_javascript技巧

最近重構東西,碰到命名空間的設定,搜了一些知識,請教了一些高手,把自己的心得寫下來相信大家都知道,window是頂級的,這裡就不寫window了,先忽略1:關於頂級複製代碼 代碼如下:var ns = ns || {};可以看到,其實就是如果發現沒有這個對象,就自動建立new Object();如果有,就直接使用這個對象,這樣就不會覆蓋。2: 第二級,當然也可以在頂級的ns下建立第二級,即複製代碼 代碼如下:ns.ModuleClass =

javascript隨機之洗牌演算法深入分析_javascript技巧

洗牌演算法是我們常見的隨機問題,在玩遊戲、隨機排序時經常會碰到。它可以抽象成這樣:得到一個M以內的所有自然數的隨機順序數組。在百度搜“洗牌演算法”,第一個結果是《百度文庫-洗牌演算法》,掃了一下裡面的內容,很多內容都容易誤導別人走上歧途,包括最後用鏈表代替數組,也只是一個有限的最佳化(鏈表也引入了讀取效率的損失)。該文裡的第一種方法,可以簡單描述成:隨機抽牌,放在另一組;再次抽取,抽到空牌則重複抽。“抽到空牌則重複抽”這會導致後面抽到空牌的機會越來越大,顯然是不合理的。可以最佳化一步成:牌抽走後

javascript中拼接HTML字串的最快、最好的方法_javascript技巧

第一種:逐個字串相加複製代碼 代碼如下:var arr = ['item 1', 'item 2', 'item 3', ...];list = '';for (var i = 0,l = arr.length; i < l; i++) {    list += '' + arr[i] + '';}list = '' + list + '';這種最常見的,但是效率最低!代碼邏輯相對來說複雜。第二種:逐個 push 進數組複製代碼 代碼如下:var arr =

javascript在網頁中實現讀取剪貼簿粘貼截圖功能_javascript技巧

見某網站的輸入框支援截屏粘貼的功能,覺得有點意思,於是將代碼扒出來分享下。可惜,目前僅有高版本的 Chrome 瀏覽器支援這樣直接粘貼,其他瀏覽器目前為止還無法粘貼( IE11沒測試過 ),當然這種增強型的使用者體驗功能有總比沒有好。輸入框的結構代碼:複製代碼 代碼如下:<input type="text" id="testInput" />為輸入框綁定粘貼事件:複製代碼 代碼如下:var input = document.getElementById( 'testInput' );

JavaScript非同步回調的Promise模式封裝執行個體_javascript技巧

網頁的互動越來越複雜,JavaScript 的非同步作業也隨之越來越多。如常見的 ajax

javascript擷取隱藏元素(display:none)的高度和寬度的方法_javascript技巧

js擷取可見元素的尺寸還是比較方便的,這個可以直接使用這個方法:複製代碼 代碼如下:function getDefaultStyle(obj,attribute){ // 返回最終樣式函數,相容IE和DOM,設定參數:元素對象、樣式特性 return

javascript中的return和閉包函數淺析_javascript技巧

高手繞道!這跟閉包本身沒什麼大的關係,也不知道怎麼取標題,隨便湊了個數,望見諒!今天一個剛學js的朋友給了我一段代碼問為什麼方法不執行,代碼如下:複製代碼 代碼如下:function makefunc(x) { return function (){  return x; }}alert(makefunc(0));其實不是不執行,只是朋友的意思這裡alert出來的應該是“0”,而不是function (){return

javascript中加號(+)操作符的一些神奇作用_javascript技巧

javascript是一門神奇的語言,這沒神奇的語言中有一個神奇的加操作符。常用的加操作符我們可以用來做:1.加法運算,例如:alert(1+2); ==>32.字串串連,例如:alert(“a”+”b”);==>”ab”進階一點的還有“+=”,也是做以上兩種操作的。昨天在javascript叢林群裡問了問題:怎麼把“2000-09-11 19:22”這個日期格式字串轉換成毫秒數?斬夢人天天馬上回答我: +new Date('2000-09-11

JavaScript也談記憶體最佳化_javascript技巧

相對C/C++ 而言,我們所用的JavaScript 在記憶體這一方面的處理已經讓我們在開發中更注重商務邏輯的編寫。但是隨著業務的不斷複雜化,單頁面應用、移動HTML5 應用和Node.js 程式等等的發展,JavaScript 中的記憶體問題所導致的卡頓、記憶體溢出等現象也變得不再陌生。這篇文章將從JavaScript 的語言層面進行記憶體的使用和最佳化的探討。從大家熟悉或略有耳聞的方面,到大家大多數時候不會注意到的地方,我們一一進行剖析。1. 語言層面的記憶體管理1.1

JavaScript代碼編寫中各種各樣的坑和填坑方法_javascript技巧

坑”這個字,在此的意思是“陷阱”。由於 JavaScript “弱語言”的性質,使得其在使用過程中異常的寬鬆靈活,但也極為容易“中招”。這些坑往往隱藏著,所以必須擦亮雙眼,才能在學習與應用 JS 的道路上走的一帆風順。一、全域變數JavaScript 通過函數管理範圍。在函數內部聲明的變數只在這個函數內部,函數外面不可用。另一方面,全域變數就是在任何函數外面聲明的或是未聲明直接簡單使用的。“未聲明直接簡單使用”,指的是不用 var

手寫的一個相容各種瀏覽器的javascript getStyle函數(擷取元素的樣式)_javascript技巧

要想擷取HTML元素的計算樣式一直都存在很多的相容問題,各瀏覽器都會存在一些差異,Firefox、webkit(Chrome,Safari)支援W3C標準的方法:getComputedStyle(),而IE6/7/8不支援標準的方法但是有私人的屬性來實現:currentStyle,IE9和Opera兩個都支援。有了這2個方法和屬性基本上可以滿足大多數要求了。複製代碼 代碼如下:var getStyle = function( elem, type ){ return

IE6中連結A的href為javascript協議時不在當前頁面跳轉_javascript技巧

切頁面時有時用連結A來替代按鈕,這樣做有幾個好處 滑鼠放上時預設有手狀效果(不用添加cursor:pointer) 可以添加低版本IE都支援的偽類 如果點擊時頁面要整體重新整理,即跳轉,這時IE6則不盡人意,如下 複製代碼 代碼如下: <p><a href="javascript:;" onclick="jumpSina()">Sina</a></p> <p><a href="javascript:void 0;"

javascript的事件觸發程序介紹的實現_javascript技巧

事件觸發程序從字面意思上可以很好的理解,就是用來觸發事件的,但是有些沒有用過的朋友可能就會迷惑了,事件不是通常都由使用者在頁面上的實際操作來觸發的嗎?這個觀點不完全正確,因為有些事件必須由程式來實現,如自訂事件,jQuery的ajax架構的一些自訂事件就必須由事件觸發程序來實現。當然,在一些特殊情況下,用事件觸發程序來觸發事件比使用者的實際操作來觸發事件更方便。對於實現事件觸發程序,瀏覽器都有原生的方法來支援,但是在相容性上又有很大的出入,這種相容性的問題完全在意料之中,IE有自己的方法,其他標

javascript數組去重方法終極總結_javascript技巧

有時會碰上這種需求,需要將數組中重複的元素刪除掉,而只保留一個。最先想到的辦法很可能就是用2個for迴圈來做比較然後去除掉重複的元素,代碼如下所示:方法1:複製代碼 代碼如下:Array.prototype.distinct = function(){ var arr = [],      len = this.length; for ( var i = 0; i < len; i++

javascript監聽滑鼠滾輪事件淺析_javascript技巧

我們都見到過這些效果,用滑鼠滾輪實現某個表單內的數字增加減少操作,或者滾輪控制某個按鈕的左右,上下滾動。這些都是通過js對滑鼠滾輪的事件監聽來實現的。今天這裡介紹的是一點簡單的js對於滑鼠滾輪事件的監聽。不同瀏覽器不同的事件首先,不同的瀏覽器有不同的滾輪事件。主要是有兩種,onmousewheel(firefox不支援)和DOMMouseScroll(只有firefox支援),關於這兩個事件這裡不做詳述,想要瞭解的朋友請移步:滑鼠滾輪(mousewheel)和DOMMouseScroll事件。另

封裝了一個支援匿名函數的Javascript事件監聽器_javascript技巧

關於js中的事件監聽大家用的比較多了,無非是判斷瀏覽器是否支援addEventListener和attachEvent,網上搜尋關於事件監聽的方法也挺多,但是總有些不是很完善。下面的方法中對於添加事件監聽的方法是一樣的,只不過在取消事件綁定上面做了點手術,現在可以支援匿名函數的使用,所以在綁定事件的時候不再需要給函數單獨命名了。主要代碼:複製代碼 代碼如下:/*綁定事件與取消綁定*/var handleHash = {};var bind = (function() { if

javascript行動裝置Web開發中對touch事件的封裝執行個體_javascript技巧

在觸屏裝置上,一些比較基礎的手勢都需要通過對 touch 事件進行二次封裝才能實現。zepto 是移動端上使用率比較高的一個類庫,但是其 touch 模組類比出來的一些事件存在一些相容性問題,如 tap 事件在某些安卓裝置上存在事件穿透的 bug,其他類型的事件也或多或少的存在一些相容性問題。於是乎,乾脆自己動手對這些常用的手勢事件進行了封裝,由於沒有太多真實的裝置來進行測試,可能存在一些相容性問題,下面的代碼也只是在 iOS 7、Andorid 4

Javascript中浮點數相乘的一個解決方案_javascript技巧

Javascript中的浮點數相乘是個很有意思的事情。浮點數相乘有很多方式,下面是我給出的一個我自己認為不錯的解決方案:複製代碼 代碼如下:function FxF(f1, f2) {    f1 += '';    f2 += '';    var f1Len = f1.split('.')[1].length,       

關於JavaScript中name的意義衝突樣本介紹_javascript技巧

在昨天的《Javascript權威指南》學習筆記之十:ECMAScript 5 增強物件模型一文中,對於一段代碼的調試出現了一個奇怪現象,現將原始碼貼在下面: 複製代碼 代碼如下: <script type="text/javascript"> function Person(){} var per = new Person; Object.defineProperties(per, { "nickName": { value:"Tom", writable:true },

javaScript年份下拉式清單方塊內容為當前年份及前後50年_javascript技巧

javascript下拉式清單方塊,內容為當前年份及前後50年,預設選擇為當前年份 複製代碼 代碼如下: <script language="javascript" type="text/javascript"> window.onload=function(){ //設定年份的選擇 var myDate= new Date(); var startYear=myDate.getFullYear()-50;//起始年份 var endYear=myDate.getFullYear()

總頁數: 3271 1 .... 1387 1388 1389 1390 1391 .... 3271 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.