Time of Update: 2017-01-19
這帶來的好處是內建函式可以訪問定義它們的外部函數的參數和變數。首先,我們來構造一個簡單的對象。複製代碼 代碼如下:var testObj = { value: 10, add: function(inc){ this.value += (typeof inc === "number") ? inc : 1;
Time of Update: 2017-01-19
在JavaScript中,函數是一等公民,函數在JavaScript中是一個資料類型,而非像C#或其他描述性語言那樣僅僅作為一個模組來使用。函數有四種調用模式,分別是:函數調用形式、方法調用形式、構造器形式、以及apply形式。這裡所有的調用模式中,最主要的區別在於關鍵字 this
Time of Update: 2017-01-19
我是搞PHP的,讓我想起了<<<文法(heredoc和nowdoc),那麼就為他命名heredoc吧。 複製代碼 代碼如下: Function.prototype.heredoc = function(){ // 利用 function 的注釋來儲存字串,而且無需轉義。 var _str = this.toString(), s_pos = _str.indexOf("/*")+2, e_pos = _str.lastIndexOf("*/"); return
Time of Update: 2017-01-19
關於js擷取flash對象,網上有非常多的例子,我也嘗試了不少方法。 雖然都能用,但是沒有我最想要的東西, 後來看了下百度的,雖然很規範,各種情況都考慮到了,但是代碼量卻不是不容樂觀, 前前後後將近20行代碼,壓縮後也有 864 個位元組。 所以本文誕生了。 我想測試並分享下網上收集的幾種我比較滿意的方法。 也順便請大家幫忙測試下相容性,有不相容的在下面留個言,最好寫上瀏覽器版本,這樣我也好測試並修複代碼。 下面來看代碼吧。 複製代碼 代碼如下: function
Time of Update: 2017-01-19
在這篇文章中,我將列出10個Javascript實用小技巧,主要面向Javascript新手和中級開發人員。希望每個讀者都能至少從中學到一個有用的技巧。1.變數轉換看起來很簡單,但據我所看到的,使用建構函式,像Array()或者Number()來進行變數轉換是常用的做法。始終使用未經處理資料類型(有時也稱為字面量)來轉換變數,這種沒有任何額外的影響的做法反而效率更高。複製代碼 代碼如下:var myVar = "3.14159",str
Time of Update: 2017-01-19
今天看到一個javascript的題目,按常理迴圈綁定事件,但是得到的結果卻不是想要的。 複製代碼 代碼如下: <a href="#">text</a> <br> <a href="#">link</a> <script> var as = document.getElementsByTagName('a'); for ( var i = as.length; i--; ) { as[i].onclick =
Time of Update: 2017-01-19
我喜歡到一些大型網站上去翻閱它們的原代碼,期望能找到一些可以應用到自己的代碼中的模式,或發現一些之前從未聽說過的工具和技巧。可是,在我查看這些大型網站的原始碼時,經常會發現一個問題,那就是重複的代碼執行,重複的功能應用。下面就是一些在查看它們的原始碼時發現一些問題,把這些分享給大家,希望能讓你們更加簡潔高效的寫出JavaScript代碼。 重複的收集元素
Time of Update: 2017-01-19
如今的JavaScript技術界裡最火熱的一項技術應該是‘事件委託(event delegation)'了。使用事件委託技術能讓你避免對特定的每個節點添加事件監聽器;相反,事件監聽器是被添加到它們的父元素上。事件監聽器會分析從子項目冒泡上來的事件,找到是哪個子項目的事件。基本概念非常簡單,但仍有很多人不理解事件委託的工作原理。這裡我將要解釋事件委託是如何工作的,並提供幾個純JavaScript的基本事件委託的例子。 假定我們有一個UL元素,它有幾個子項目: 複製代碼 代碼如下: <ul
Time of Update: 2017-01-19
我們大多數人都使用過JavaScript,近年來隨著各種JavaScript架構的流行使得JavaScript變得更加神奇和容易。"Anonymous (匿名)函數?不知道那是什麼但是看起來和自己所寫的差不多。”你可能並不知道可以傳給 new Function() 一個字串作為函數的body來構造一個 JavaScript函數。編程中並不經常用到,但有時候應該是很有用的.下面是 new Function 的基本用法:複製代碼 代碼如下:// 最後一個參數是函數的 body(函數體),類型為
Time of Update: 2017-01-19
由於javascript是unicode編碼的,所有的字元對於它來說一個就是一個,但是背景程式不是,通常在背景程式中一個中文是佔兩個位元組的,這就導致了前後端校正長度不一致,這個問題可以通過正則來解決。複製代碼 代碼如下:function getRealLen( str ) { return str.replace(/[^\x00-\xff]/g, '__').length;
Time of Update: 2017-01-19
複製代碼 代碼如下:l = [6, 2, 4, 1, 98, 34, 5, 9, 23, 8, 10, 32] //冒泡排序/*function bubbleSort(arr) { newarr = arr.slice() if (newarr.length <= 2) return
Time of Update: 2017-01-19
見圖: 代碼如下: 複製代碼 代碼如下: <!DOCTYPE html> <html> <meta http-equiv="content-type" Content="text/html;charset=utf-8"> <head> <title>簡易畫板</title> <style> #eraseImg{ /*橡皮樣式*//**/ border:solid; color:gray;
Time of Update: 2017-01-19
做為一個前端開發人員在網頁展示中經常會碰到,標題過長,需要截取字串,用CSS的實現的話各種相容問題,各種坑。 讓背景程式截一下,又各種推託,讓後台按位元組截一下更是和要了後台老命一樣,最後可能只會安字元長度給你截一下,最後不好看,對不齊,還是回頭整CSS、調相容; 有以上有感觸的前端同學默默點個贊吧。 最近接觸一個項目,後台只提供介面(json),所有頁面的資料渲染,資料繫結都都交給了前端。終於,不考慮SEO,頁面所有的主動權到偶的手中了,不經意間就碰到位元組截取老問題了。
Time of Update: 2017-01-19
一、序言 一直很中意win8等待提示圓圈進度條。win8剛出來那會,感覺好神奇!苦於當時沒思路,沒去研究。通過最近網上找找資料,終於給搞出來了!先上Demo,獻醜了!預覽請看:win8進度條。 二、簡單介紹 原生javascript編寫,需要理解js基於物件導向編程和圓形座標計算!
Time of Update: 2017-01-19
一些不太常用但強大的JavaScript小技巧,新手和老手js開發人員都不一定知道。1、截斷數組與數組長度複製代碼 代碼如下:var arr1 = arr2 = [1, 2, 3];//改變 arr1arr1 = []; // arr2則任然是 [1,2,3]你會發現arr1用[]方法來清空不會影響arr2的值,假如要想讓arr1改變後arr2跟著一起改變 ,則可以這樣複製代碼 代碼如下: var arr1 = arr2 = [1, 2, 3];arr1.length=0;
Time of Update: 2017-01-19
以下代碼在IE8下運行通過,在IE9中出錯:複製代碼 代碼如下:document.createElement('<iframe id="yige-org-iframe" src="yige.org.logo.gif" style="position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;"></iframe>');錯誤提示:exception : SCRIPT5022: DOM
Time of Update: 2017-01-19
這個函數經常用到,分享給大家。函數代碼:複製代碼 代碼如下:Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" :
Time of Update: 2017-01-19
今天在實現checkbox全選,反選,取消JavaScript小指令碼的時候,總是出現點擊後頁面瞬間重新整理,選擇的checkbox全部取消的問題,debug了半天,才發現原來是<button>標籤中少寫了一個type屬性的原因,鬱悶啊,希望自己以後少犯這種特別2的錯誤,特此記錄。 複製代碼 代碼如下: <!-- 以下為錯誤寫法 --> <button name="checkAll" value="全選" class="checkButton"
Time of Update: 2017-01-19
經常看到這樣的例子: 複製代碼 代碼如下: var a; var b=!!a; a預設是undefined。!a是true,!!a則是false,所以b的值是false,而不再是undefined,也非其它值,主要是為後續判斷提供便利。 !!一般用來將後面的運算式強制轉換為布爾類型的資料(boolean),也就是只能是true或者false; 因為javascript是弱類型的語言(變數沒有固定的資料類型)所以有時需要強制轉換為相應的類型,類似的如: 複製代碼
Time of Update: 2017-01-19
在做頁面時,如果想做一個連結點擊後不做任何事情,或者響應點擊而完成其他事情,可以設定其屬性 href = "#",但是,這樣會有一個問題,就是當頁面有捲軸時,點擊後會返回到頁面頂端,使用者體驗不好。 目前有如下幾種解決辦法: 1)點選連結後不做任何事情 複製代碼 代碼如下: <a href="javascript:void(0);" >test</a> <a href="javascript:;" >test</a> <a href="###