首頁 web前端 js教程 javascript常用方法總結_基礎知識

javascript常用方法總結_基礎知識

May 16, 2016 pm 04:29 PM
javascript 常用方法

本章沒有深奧的講解js一些底層原理,比如this指針、作用域、原型啦,涉及的都是一些有利於平時開發時簡化程式碼,提高執行效率,或者說可以當做一種經驗方法來使用,篇幅都不長,小步快跑的讓你閱讀完整篇文章,體驗程式設計的快樂。

 取得兩個區間內隨機數

複製程式碼 程式碼如下:

function getRandomNum(Min, Max){ // 取得兩個區間內隨機數
    // @逆火狂飆  提出有可能第一個參數大於第二個參數,所以增加一下判斷比較可靠
    if (Min > Max)
    Max = [Min, Min = Max][0]; // 快速交換兩個變數值
   
    var Range = Max - Min 1;
    var Rand = Math.random();
    return Min Math.floor(Rand * Range);
};

隨機回傳一個 正/負參數

複製程式碼 程式碼如下:

function getRandomXY(num){ // 隨機回傳一個 正/負參數
    num = new Number(num);
    if (Math.random()         num = -num;
    return num;
}

 setInterval()或setTimeOut()計時器函數傳參

複製程式碼 程式碼如下:

var s = '我是參數';
function fn(args) {
    console.log(args);
}
var a = setInterval(fn(s),100);    // xxxxxx錯誤xxxxx
var b = setInterval(function(){    // 正確,用匿名函數呼叫被計時函數
    fn(s);
}, 100);

setInterval()或setTimeOut()計時器遞歸呼叫

複製程式碼 程式碼如下:

var s = true;
function fn2(a, b){        //  步驟三
    if (s) {
        clearInterval(a);
        clearInterval(b);
    }
};
function fn(a){     //  步驟二
    var b = setInterval(function(){
        fn2(a, b) // 傳入兩個計時器
    }, 200)
};
var a = setInterval(function(){      //  步驟一
    fn(a); // b代表計時器本身,可座位參數傳送
}, 100);

字串轉換為數字

複製程式碼 程式碼如下:

// 不需要 new Number(String)   也不需要 Number(String) 只需字串減去零即可
var str = '100';  // str: String
var num = str - 0;// num: Number

空值判斷

複製程式碼 程式碼如下:

var s = '';  // 空字串
if(!s)         // 空字串預設轉換為布林false,可直接寫在判斷語句裡面
if(s != null) // 但是空字串 != null
if(s != undefined) // 空字串也 != undefined

IE瀏覽器parseInt()方法

複製程式碼 程式碼如下:

// 下面的轉換在IE下為0,其他瀏覽器則為1,這跟IE瀏覽器解釋數字的進位有關
var iNum = parseInt(01);
// 所以,相容的寫法為
var num = parseInt(new Number(01));

Firebug便利調試js程式碼

複製程式碼 程式碼如下:

//Firebug內建console對象,提供內建方法,用來顯示資訊
/**
* 1:console.log(),可以用來取代alert()或document.write(),支援佔位符輸出,字元(%s)、整數(%d或%i)、浮點數(%f)和對象(%o)。如:console.log("%d年%d月%d日",2011,3,26)
 * 2:如果資訊太多,可以分組顯示,用到的方法是console.group()和console.groupEnd()
 * 3:console.dir()可以顯示一個物件所有的屬性與方法
 * 4:console.dirxml()用來顯示網頁的某個節點(node)所包含的html/xml程式碼
 * 5:console.assert()斷言,用來判斷一個表達式或變數是否為真
 * 6:console.trace()用來追蹤函數的呼叫軌跡
 * 7:console.time()和console.timeEnd(),用來顯示程式碼的運行時間
 * 8:效能分析(Profiler)就是分析程式各部分的運行時間,找出瓶頸所在,使用的方法是console.profile()....fn....console.profileEnd()
 */

 快速取目前時間毫秒數

複製程式碼 程式碼如下:

// t == 目前系統毫秒值,原因: 號運算子會,會呼叫Date的valueOf()方法。
var t = new Date(); 

快速取小數整數位

複製程式碼 程式碼如下:

// x == 2,以下x值皆為2,負數也可轉換
var x = 2.00023 | 0;
// x = '2.00023' | 0;

兩個變數值互換(不用中間量

複製程式碼 程式碼如下:

var a = 1;
var b = 2;
a = [b, b=a][0]
alert(a '_' b)    // 結果 2_1,a和b的值已經互換。

 邏輯或'||'運算子

複製程式碼 程式碼如下:

// b不為null:a=b, b為null:a=1。
var a = b || 1;
// 較常見的用法為為一個外掛方法傳參,和取得事件目標元素:event = event || window.event
// IE有window.event對象,而FF沒有。

只有方法物件才有prototype原型屬性

複製程式碼 程式碼如下:

// 方法有物件原型prototype屬性,而原始資料沒有該屬性,如  var a = 1, a沒有prototype屬性
function Person() {} // 人的建構子
Person.prototype.run = function() { alert('run...'); } // 原型run方法
Person.run(); // error
var p1 = new Person(); // 只有在new運算元時,此時才會將原型run方法賦值給p1
p1.run(); // run...

快速取得當天為星期幾

複製程式碼 程式碼如下:

// 計算系統目前時間是星期幾
var week = "今天是:星期" "日一二三四五六".charat(new date().getDay());

閉包偏見

複製程式碼 程式碼如下:

/**
 * 閉包:任何一個js方法體可以稱為一個閉包,並非什麼只有內嵌函數來引用了外部函數的某個參數或屬性才會發生。
 * 它有一個獨立作用域,在該作用域內可存在若干的子作用域(就是方法嵌套法),最終該閉包作用域為最外層方法的作用域
 * 它包含了本身方法參數和所有內嵌函數的方法參數,所以當一個內嵌函數在外部有引用時,該引用的作用域為引用函數所在的(頂級)方法作用域
 */
function a(x) {
    function b(){
        alert(x); // 引用外在函數參數
    }
    return b;
}
var run = a('run...');
// 由於作用域的擴大,可以引用到外部函數a的變數並顯示
run(); // alert(): run..

取得位址參數字串和定時刷新

複製程式碼 程式碼如下:

// 取得問號?後面的內容,包括問號
var x = window.location.search
// 取得警號#後面的內容,包括#號
var y = window.location.hash
// 配合定時器可實現網頁自動刷新
window.location.reload();

Null和Undefined

複製程式碼 程式碼如下:

/**
 * Undefined類型只有一個值,即undefined。當宣告的變數尚未初始化時,變數的預設值為undefined。
 * Null類型也只有一個值,即null。 null用來表示尚未存在的對象,常用來表示函數企圖傳回一個不存在的物件。
 * ECMAScript認為undefined是從null衍生出來的,所以把它們定義為相等的。
 * 但是,如果在某些情況下,我們一定要區分這兩個值,那該怎麼辦呢?可以使用下面的兩種方法
 * 在進行判斷時視需要,判斷物件是否有值時最好用‘==='強型別判斷。
 */
var a;
alert(a === null); // false,因為a不是一個空物件
alert(a === undefined); // true,因為a未初始化,值為undefined
// 引申
alert(null == undefined); // true,因為‘=='運算子會進行型別轉換,
// 同理
alert(1 == '1'); // true
alert(0 == false); // true,false轉換為Number型別為0

 給予方法動態新增參數

複製程式碼 程式碼如下:

// 方法a多了一個參數2
function a(x){
    var arg = Array.prototype.push.call(arguments,2);
    alert(arguments[0] '__' arguments[1]);
}

自訂SELECT邊框樣式

複製程式碼 程式碼如下:



   

最簡單的調色盤

複製程式碼 程式碼如下:



函數、物件 is 陣列?

複製程式碼 程式碼如下:

var anObject = {}; //一個物件
anObject.aProperty = “Property of object”; //物件的一個屬性
anObject.aMethod = function(){alert(“Method of object”)}; //物件的一個方法
//主要看下面:
alert(anObject[“aProperty”]); //可以將物件當數組以屬性名稱作為下標來存取屬性
anObject[“aMethod”](); //可以將物件作為數組以方法名稱作為下標來呼叫方法
for( var s in anObject) //遍歷物件的所有屬性和方法進行迭代化處理
alert(s ” is a ” typeof(anObject[s]));
// 同樣對於function類型的物件也是一樣:
var aFunction = function() {}; //一個函數
aFunction.aProperty = “Property of function”; //函數的一個屬性
aFunction.aMethod = function(){alert(“Method of function”)}; //函數的一個方法
//主要看下面:
alert(aFunction[“aProperty”]); //可以將函數當數組以屬性名稱作為下標來存取屬性
aFunction[“aMethod”](); //可以將函數當數組以方法名稱作為下標來呼叫方法
for( var s in aFunction) //遍歷函數的所有屬性和方法進行迭代化處理
alert(s ” is a ” typeof(aFunction[s]));

複製程式碼 程式碼如下:

/**
 * 是的,物件和函數可以像數組一樣,用屬性名或方法名作為下標來存取並處理。
 * 那麼,它到底該算是數組呢,還是算對象?我們知道,數組應該算是線性資料結構,線性資料結構一般有一定的規律,適合進行統一的批量迭代操作等,有點像波。
 * 而物件是離散資料結構,適合用來描述分散的和個人化的東西,有點像粒子。
 * 因此,我們也可以這樣問:JavaScript 裡的物件到底是波還是粒子?如果存在對象量子論,那麼答案一定是:波粒二象性!
 * 因此,JavaScript裡的函數和物件既有物件的特徵也有陣列的特徵。這裡的陣列稱為“字典”,一種可以任意伸縮的名稱值對兒的集合。其實, object和function的內部實作就是一個字典結構,但這種字典結構卻透過嚴謹而精巧的語法表現出了豐富的外觀。正如量子力學在某些地方用粒子來 解釋和處理問題,而在另一些地方卻用波來解釋和處理問題。你也可以在需要的時候,自由選擇用物件還是陣列來解釋和處理問題。只要善於掌握 JavaScript 的這些奇妙特性,就可以寫出許多簡潔而強大的程式碼來。
 */

點選空白處能觸發某一元素關閉/隱藏

複製程式碼 程式碼如下:

/**
 * 有時頁面有個下拉式選單或什麼的效果,需要使用者點擊空白處或點選其他元素時將其隱藏
 * 可用一個全域document點選事件來觸發
 * @param {Object} "目標物件"
 */
$(document).click(function(e){
    $("目標物件").hide();
});
/**
 * 但有一個缺點就是當你點選該元素又想讓他顯示
 * 如果你不及時阻止事件冒泡至全域出發document物件點擊時,上面方法就會執行
 */
$("目標物件").click(function(event){
    event = event || window.event;
    event.stopPropagation(); // 點選目標物件時,及時阻止事件冒泡
    $("目標物件").toggle();
});

以上都是個人整理的一些常用的javascript小方法,記錄下來方便自己開發時直接拿來使用,這裡也推薦給有需要的小伙伴。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統 如何利用JavaScript和WebSocket實現即時線上點餐系統 Dec 17, 2023 pm 12:09 PM

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統 如何使用WebSocket和JavaScript實現線上預約系統 Dec 17, 2023 am 09:39 AM

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

javascript如何使用insertBefore javascript如何使用insertBefore Nov 24, 2023 am 11:56 AM

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節點。這個方法需要兩個參數:要插入的新節點和參考節點(即新節點將要插入的位置的節點)。

JavaScript與WebSocket:打造高效率的即時影像處理系統 JavaScript與WebSocket:打造高效率的即時影像處理系統 Dec 17, 2023 am 08:41 AM

JavaScript是一種廣泛應用於Web開發的程式語言,而WebSocket則是一種用於即時通訊的網路協定。結合二者的強大功能,我們可以打造一個高效率的即時影像處理系統。本文將介紹如何利用JavaScript和WebSocket來實作這個系統,並提供具體的程式碼範例。首先,我們需要明確指出即時影像處理系統的需求和目標。假設我們有一個攝影機設備,可以擷取即時的影像數

See all articles