標籤:
Q:如何將一個數組的內容複寫到另外一個數組?A:jscript.array.copyArray = function(isSrcArray,inDestArray){ var i; for(i = 0; i < inSrcArray.length; i++) { inDestArray.push(inSrcArray[i]); } return inDestArray;}// End copyArray() 把inSrcArry的中每一個元素都添加到inDestArry中。返回inDestArray. Q:怎樣在一個數組中尋找指定的元素呢?假設使用者在頁面中輸入一系列的值。看起來合理的是應該把他們放到一個數組中 。 A:jscript.array.findInArray = function(inArray,inValue){ var i; for(i = 0;i<inArray.length;i++) { if(inArray[i] == inValue) { return i; } } return -1;}//遍曆數組所有的值是否等於我們要找的值,然後返回下標值。找不到返回-1.這個幾乎是任何類型的尋找中“不,沒有找到”的常見傳回值。 Q:假設我有一個數組,如何計算數組中所有值的平均值? A:jscript.array.arrayAverage = function(inArray) { var accmulatot = 0; var i = 0; for(i = 0; i< inArray.length;i++) { accmulator += inArray[i]; } return accmulator / inArray.length;} //累加數組中的所有值,再除以長度。 Q:如何擷取正在使用應用程式的瀏覽器的標示資訊?A:jscript.browser.getBrowserIdentity = function() { return navigator.appName + " " + navigator.appVersion;}//返回一個字串,它由瀏覽器的名稱和版本組成。 Q:如何輕鬆的知道一個給月有多少天?比如使用者輸入31.我就需要確定輸入的月份是有31天的? A:jscript.datetime.getNumberDaysInMonth = function(inMonth,inYear){ inMonth = inMonth - 1; var leap_year = this.inLeapYear(inYear); if(leap_year) { leap_year = 1; } else { leap_year = 0; } if(inMonth == 3 || inMonth == 5 || inMonth == 8 ||inMonth ==10) { return 30; } else if(inMonth == 1) { return 28 + leap_year; } else { return 31; }} 判斷輸入的年是否為一個閏年,要實現這個功能,我們要再寫一個名為isLeapYear()的函數用於檢測。閏年的2月由29天。我們要記住4月,6月,9月。11月有31天。
jscript.datetime.isLeapYer = function(inYear) {
if((inYear % 4 == 0 && !(inYear %100==0)) || inYear %400 ==0)
{
return true;
}
else { return false;}
}
//如果年份可以被4整除且不能被100整除,或它可以被400整除的話,那麼它就是閏年。 Q:如何顯示一個任意的一個對象的所有屬性以及他們的值?jscript.debug.enumProps = function(inObj) {var props = "";var i;for(i in inObj){ props += i + "=" + inObj[i] + "\n";}alert(prop);} Q:如何?一個健壯的自動記錄日誌機制呢?類似jakarta Comons Logging?我經常發現想在代碼中放入一些日誌資訊,Q:如何將任意的一個DOM元素置中?當一個表單被提交時,應用程式彈出一個"請等待"的資訊。它只是一個z-index設定為大的數值的<div>,所以它可以被顯示在其他所有東西的上面。不幸的是,那個寫代碼的臨時工不知道如何將<div>置中。所以它通常是在左上方。 jscript.dom.layerCenterH = function(inObj){var lca;var lcb;var lcx;var iebody;var dsocleft;if(window.innerWidth){ lca = window.innerWidth;}else{ lca = document.body.clientWidth;}lcb = inObj.offsetWidth;lcx = (Math.round(lca/2)) - (Math.round(lcb/2));iebody = (document.compatMode && document.compatMode !="BackCompat")? dscoleft =document.all ? iebody.scrollLeft:window.pageXOffset;inObj.style.left = lcx +dsocleft + "px";}Q:如何引用任意數量的DOM元素?A:jscript.dom.getDOMElements = function(){if(arguments.length == 0){return null;}if(arguments.length ==1){return document.getElementById(arguments[0]);}var elems = new Array();for ( var i = 0;i<arguments.length;i++){elems.push(document.getElementById(arguments[i]))‘}return elems;} 這個函數會接受可變數量的參數。 Q:如何從一個HTML表單產生一個XML? 86頁代碼未摘錄。 Q:select提高全選功能?A:jscript.form.selectSelectAll = function(inSelect){if(inSelect == null || !inSelect.options || inSelect.options.length==0){return;}var i;for(i = 0;i<inSelect.options.length;i++){inSelect.options[i].selected =true;}} Q:如何獲得一個對象的的屬性並把他們複製給另外一個對象?A:jscript.lang.copyProperties = function(inSrcObj,inDestObj,inOverride){var prop;for(prop in inScrObj){ if(inOverride || !omDestObj[prop]) { inDestObj[prop] = inSrcObj[prop]; } }return inDestObj;} //使用for ...in 迴圈遍曆inSrcObj的屬性。對於每一個屬性,查看是否已經在inDestObj中存在,如果存在,通過傳入true作為inOverride參數的值,來看看條用著是否讓我們覆蓋已存在的屬性。如果它存在是,我們就重寫,如果它不存在,我們使用數組符號設定inDestObj的屬性的值。 Q:如何在一個指定範圍內產生隨機數?A:jscript.math.genRandomNumber = function(inMin,inMax){if(inMin >inMax){return 0;}return inMin +(inMax-inMin)*Math.random();} Q:如何使用JavaScript打破一個架構?就是不在是iframeset!A:jscript.page.breakOutOffFrames = function() {if(self !=top){top.location = self.location;}}
一些JavaScript題目