javascript全域方法

來源:互聯網
上載者:User

標籤:tostring   算數   保留字   否則   script   throws   轉義   ref   間接   

1、encodeURI(URI)

  a、作用:是對統一資源識別項(URI)進行編碼的方法;

  b、參數:是一個完整的URI;

  c、特點:不需要對保留字以及在URI中有特殊意思的字元進行編碼。

    (1)、保留字元:; , / ? : @ & = + $

    (2)、非逸出字元:字母 數字 - _ . ! ~ *  ( )

    (3)、數學符號:#

2、decodeURI(encodedURI)

  a、作用:解碼由encodeURI或者類似方法編碼的統一資源識別項(URI);

  b、參數:一個完整編碼過的URI;

  c、特點:將已編碼 URI 中所有能識別的逸出序列轉換成原字元,但不能解碼那些不會被 encodeURI 編碼的內容(例如 "#")。

3、encodeURIComponent(str)

  a、作用:是對統一資源識別項(URI)組成部分進行編碼的方法;

  b、參數:String.URI的組成部分;

  c、特點:轉義除了字母、數字、(、)、.、!、~、*、‘、-和_之外的所有字元。

4、decodeURIComponent(encodedURI)

  a、作用:解碼由encodeURIComponent或者類似方法編碼的統一資源識別項(URI);

  b、參數:編碼後的部分URI;

  c、特點:將已編碼 URI 中所有能識別的逸出序列轉換成原字元。

5、eval(str)

  a、作用:將傳入的字串當做javascript執行;

  b、參數:字串,需要計算的運算式或者執行的語句;

  c、傳回值:代碼執行後的傳回值,否則為undefined;

  d、特點:(1)、如果參數不是字串,原封不動的返回;(2)、直接調用,使用的是當前範圍, 間接調用,使用的是全域範圍。

eval(new String("2 + 2")); // 返回了包含"2 + 2"的字串對象eval("2 + 2"); // returns 4function test() {    var x = 2, y = 4;    console.log(eval("x + y"));  // 直接調用,使用本地範圍,結果是 6    var geval = eval;    console.log(geval("x + y")); // 間接調用,使用全域範圍,throws ReferenceError 因為`x`未定義}

6、isFinite(testVal):類似於Number.isFinite(testVal)

  a、作用:判斷testVal是否為一個有限的值;

  b、參數:傳入字串,會轉換成數字再判斷。注意:Number.isFinite(testVal)不會轉換類型。

  c、傳回值:true/false;

isFinite(Infinity);     // falseisFinite(-Infinity); // falseisFinite(0);         // trueisFinite(2e64);      // trueisFinite("0");        // trueisFinite(NaN);       // falseisFinite(null);        // trueisFinite(undefined); // falseisFinite(true);     // trueisFinite(false);     // trueNumber.isFinite(Infinity);     // falseNumber.isFinite(-Infinity); // falseNumber.isFinite(0);         // trueNumber.isFinite(2e64);      // trueNumber.isFinite("0");        // falseNumber.isFinite(NaN);       // falseNumber.isFinite(null);        // falseNumber.isFinite(undefined); // falseNumber.isFinite(true);          // falseNumber.isFinite(false);     // false

7、isNaN( testVal )

  a、作用:判斷一個值是否是NaN,將參數強制轉換成數字再進行判斷。

  b、傳回值:true/false

  c、特點:(1)、NaN不能通過==和===來判斷,NaN == NaN 和 NaN === NaN 都返回false;(2)、算數運算得到無法表示或未定義的值時,為NaN;(3)、不能強制換行成數字時,為NaN;(4)、0除以0會返回NaN —— 但是其他數除以0則不會返回NaN。

escape(),unescape():已經放棄使用。

  d、注意:通過Number.isNaN(x)來檢測變數x是否是一個非數值將會是一種可靠的做法。然而,在缺少Number.isNaN函數的情況下, 通過運算式(x != x) 來檢測變數x是否是NaN會更加可靠。

isNaN = function(value) {    Number.isNaN(Number(value));}isNaN(NaN);       // trueisNaN(undefined); // trueisNaN({});        // trueisNaN(0 / 0);      // trueisNaN(5 / 0);      // falseisNaN(true);      // falseisNaN(null);      // falseisNaN(37);        // falseisNaN("37");      // false: 可以被轉換成數值37isNaN("37.37");   // false: 可以被轉換成數值37.37isNaN("");        // false: Null 字元串被轉換成0isNaN(" ");       // false: 包含空格的字串被轉換成0isNaN(new Date());                // falseisNaN(new Date().toString());     // trueisNaN("blabla")   // true: "blabla"不能轉換成數值//和全域函數 isNaN() 相比,該方法不會強制將參數轉換成數字,只有在參數是真正的數字類型,且值為 NaN 的時候才會返回 true。Number.isNaN(NaN);       // trueNumber.isNaN(undefined); // falseNumber.isNaN({});        // falseNumber.isNaN(0 / 0);     // trueNumber.isNaN(5 / 0);     // falseNumber.isNaN(true);      // falseNumber.isNaN(null);      // falseNumber.isNaN(37);        // falseNumber.isNaN("37");      // false: 不可以被轉換成數值37Number.isNaN("37.37");   // false: 不可以被轉換成數值37.37Number.isNaN("");        // false: 不Null 字元串被轉換成0Number.isNaN(" ");       // false: 不包含空格的字串被轉換成0Number.isNaN(new Date());                // falseNumber.isNaN(new Date().toString());     // falseNumber.isNaN("blabla")   // false: "blabla"不能轉換成數值

 8、null 和 undefined

  a、null:javascript字面量,javascript原始值之一,表示空值,不是全域對象的屬性

  b、undefined:javascript原始值之一,是javascript的未經處理資料類型,是全域對象的屬性

typeof null        // object (因為一些以前的原因而不是‘null‘)typeof undefined   // undefinednull === undefined // falsenull == undefined // truenull === null // truenull == null // true!null //trueisNaN(1 + null) // falseisNaN(1 + undefined) // true

9、parseInt 和 parseFloat

  a、parseInt:返回一個整數

  b、parseFloat:返回一個浮點數

javascript全域方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.