Time of Update: 2014-04-10
多重迴圈在編程中會經常遇到,那麼在JavaScript中如何指定跳出那層的迴圈呢。其實這也是break的一個用法,下面是一個不錯的例子,來自《JavaScript權威指南》,可以參考下: Code <script type="text/javascript">outerloop://命名外圈語句for(i=0; i<10; i++){innerloop://命名內圈語句for(j=0; j<10; j++){// 跳出內圈迴圈if(j>3){break;}//
Time of Update: 2014-04-10
在過去,JavaScript只是被用來做一些簡單的網頁效果,比如表單驗證、浮動廣告等,所以那時候JavaScript並沒有受到重視。自從AJAX開始流行後,人們發現利用JavaScript可以給使用者帶來更好的體驗,甚至利用這一優點開發了大型網頁遊戲,於是這門小語言被重視了起來。現在,很多公司會招專門的JavaScript工程師,通常JavaScript是WEB前端開發的必備技能。簡單介紹了JavaScriptr的好處,並不代表大家就會去學習甚至把它學好,興趣是很關鍵的,我認為興趣是最好的老師,
Time of Update: 2014-04-10
我們有時候需要在iframe裡面對父級的表單進行驗證,這其實也很簡單,在iframe中使用parent關鍵字來調用父級頁面的javascript函數即可。下面是我在項目遇到的一個實際問題,為了以後使用方便,記錄下。如果能對大家也有用,那就最好了。 iframe表單設計:<form name="add" method="POST" enctype="multipart/form-data" action="ecms.php" onsubmit="return chkinput(
Time of Update: 2014-04-10
有時在顯示某段文字的時候,可能會太長,影響我們頁面的顯示效果。如果僅是英文,那麼我們可以用String.substring(start, end)函數就已經夠用了。但是通常我們都會遇到既有英文,又有漢字的情況。而漢字是佔用2個位元組的,如果用String.substring(start, end)截取字串的話,會發現漢字截取後比英文截取後個數雖然相同,但是長度還是長出去不少(具體要視字元個數來決定)。下面是一個實現這個功能的函數:<script language="javascript"
Time of Update: 2014-04-10
很多時候從伺服器傳過來的json文本比較複雜,下面的函數可以把數組,String,Object轉為JSON格式的內容。 JSON = { encode : function(input) { if (!input) return 'null' switch (input.constructor) { case String: return '"' + input + '"' case Number: return input.toString()
Time of Update: 2014-04-10
最近偶然碰到有朋友問我"hoisting"的問題。即在js裡所有變數的聲明都是置頂的,而賦值則是在之後發生的。可以看看這個例子: var a = 'global';(function () {alert(a);var a = 'local';})(); 大家第一眼看到這個例子覺得輸出結果是什嗎?'global'?還是'local'?其實都不是,輸出的是undefined,不用迷惑,我的題外話就是為了講這個東西的。
Time of Update: 2014-04-10
在Web開發中,JavaScript很重要,演算法也很重要。下面整理了一下一些常見的演算法在JavaScript下的實現,包括二分法、求字串長度、數組去重、插入排序、選擇排序、希爾排序、快速排序、冒泡法等等。僅僅是為了練手,不保證高效與美觀,或許還有Bug,有時間再完善吧。二分法:function binary(items,value){ var startIndex=0, stopIndex=items.length-1,
Time of Update: 2014-04-10
“prototype”字面翻譯是“原型”,是javascript實現繼承的主要手段。粗略來說就是:prototype是javascript中的函數(function)的一個保留屬性,並且它的值是一個對象(我們可以稱這個對象為"prototype對象")。通過以此函數作為建構函式構造出來的對象都自動的擁有建構函式的prototype對象的成員屬性和方法。其中的要點是:prototype是函數(function)的一個必備屬性(書面一點的說法是"保留屬性")(只要是function,就一定有一個pr
Time of Update: 2014-04-10
在 JavaScript 1.6 裡,javascript 數組增加了幾個非常有用的方法:indexOf、lastIndexOf、every、 filter、 forEach、 map、 some,其中前兩個可以歸為元素定位方法,而後面的幾個則可以歸為迭代(iterative)方法。遺憾的是:這些新方法並非所有瀏覽器都支援,在這種情況下,我們就需要自己動手了,在這些介紹的文章中,我們同時提供了在不支援這些新特性的瀏覽器中的實現方法。原生方法如下:var mappedArray =
Time of Update: 2014-04-10
先看一下代碼: <ul> <li>1111</li> <li>2222</li> <li>3333</li></ul><script> var a=document.getElementsByTagName('li'); for(var i=0,l=a.length;i<l;i++){ a[i].onclick=function(){ alert(i)
Time of Update: 2014-04-10
由於JavaScript是一門寬鬆的語言,這種寬鬆可能會帶來更加麻煩的事情。比如JavaScript的數組,定義與使用的方式太靈活有時候讓人迷惑。下面將JavaScript中關於數組常用的方法、定義之類的用法羅列一下,希望可以協助你更加瞭解JavaScript數組。 5種聲明數組的方法 var a = new Array();var a = new Array; var a = new Array(10);//建立Array對象,並指定數組中項的個數 var a =
Time of Update: 2014-04-10
在學習JavaScript的變數範圍之前,我們應當明確幾點:JavaScript的變數範圍是基於其特有的範圍鏈的。JavaScript沒有塊級範圍。函數中聲明的變數在整個函數中都有定義。1、JavaScript的範圍鏈首先看下下面這段代碼:<script type="text/javascript"> var rain = 1; function rainman(){ var man = 2; function inner(){
Time of Update: 2014-04-10
As more and more sites evolve into “Web 2.0″ apps, the amount of JavaScript increases. This is a performance concern because scripts have a negative impact on page performance. Mainstream browsers (i.e., IE 6 and 7) block in two ways:
Time of Update: 2014-04-10
有時候我們需要知道兩個日期之間差了多少天,多少小時,甚至多少分鐘多少秒。下面我們用JavaScript實現一個函數,用於計算兩個日期的時間差,先來看看代碼: <script type="text/javascript">/*** 時間對象的格式化;*/Date.prototype.format = function(format){ /* * eg:format="YYYY-MM-dd hh:mm:ss"; */var o = { "M+" : this.getMonth()+1
Time of Update: 2014-04-10
在Web開發時,很多時候會遇到一個問題。我在一個頁面嵌入了iframe,並且我想獲得這個iframe頁面某個元素的值。那麼該如何?這個需求呢? 先來看下示範:效果示範 iframe1中文字框的值: 在IE下操作IFrame內容的代碼:document.frames["MyIFrame"].document.getElementById("s").style.color="blue";
Time of Update: 2014-04-10
對於熟悉C#和Java的兄弟們,物件導向的三大思想(封裝,繼承,多態)肯定是瞭解的,那麼如何在Javascript中利用封裝這個特性呢? 我們會把現實中的一些事物抽象成一個Class並且把事物的屬性(名詞)作為Class的Property把事物的動作(動詞)作為Class的methods。在物件導向的語言中(C#等)都會有一些關鍵字來修飾類或者屬性(Private,public,protect),這些關鍵詞描述了訪問的許可權,不多做解釋。
Time of Update: 2014-04-10
JQuery確實是個很好用的庫,你可以不用考慮很多細節方面的事情。但很作為一個web前端,處理和瞭解瀏覽器差異一個重要問題。下面將介紹一些總結,先介紹沒有使用js庫的情況。 1. setAttribute方法設定元素類名 在jQuery中,直接使用attr()方法即可,可在原生的JS中,//這個是W3C的標準,在相容W3C標準的瀏覽器中有效,可是,IE才是國內使用者的主旋律element.setAttribute('class','newClassName')
Time of Update: 2014-04-10
JS 有個很無語的阻塞特性,就是當瀏覽器在執行JS 代碼時,不能同時做其他任何事情,無論其代碼是內嵌的還是外部的。 瀏覽器在碰到一個引入外部JS 檔案的<script>標籤時會停下所有工作來下載並解析執行它,在這個過程中,頁面渲染和使用者互動完全被阻塞了,為了避免頁面載入時的停頓甚至空白頁的出現,JS 指令碼應盡量放置在頁面底部,這點很重要: <html><head><title>無標題文檔</title><link
Time of Update: 2014-04-10
今天把javascript如何用來建立及儲存cookie複習了一下,其中的一點體會拿出來和大家討論,首先看一下基礎知識: 什麼是cookie cookie 是儲存於訪問者的電腦中的變數。每當同一台電腦通過瀏覽器請求某個頁面時,就會發送這個 cookie。你可以使用 JavaScript 來建立和取回 cookie 的值。 有關cookie的例子名字 cookie: 當訪問者首次訪問頁面時,他或她也許會填寫他/她們的名字。名字會儲存於 cookie
Time of Update: 2014-04-10
先來看一下效果示範: 簡 明 現 代 魔 法上面的元素,滑鼠移上去透明度漸漸增加,滑鼠移出,透明度漸漸減小。關鍵代碼:var speed = 0;if(target>obj.alpha){speed = 5;}else{speed = -5;}根據目標值和當時值的對比,來決定是正向還是負向速度。for(i=0; i 給每一個元素加上各自的透明度值,各自的透明度變化分開。全部代碼:<style>#runs{width:300px; margin:10px auto;}#runs