乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JS 內(nèi)置一些對象: Date 對象 JSON 對象 包裝對象 RegExp 對象:正則表達式 全局對象 和 Error 對象

       印度阿三17 2019-12-14

      內(nèi)置對象

        內(nèi)置對象就是指一個語言自帶的一些對象,供開發(fā)者使用,這些對象提供了一些常用的或是最基本而必要的功能。

        JS標準內(nèi)置對象一般我們認為有12個。其中可以通過 new 關(guān)鍵字進行實例化對象的有9個,我們叫做構(gòu)造器對象:

          Object、Boolean、String、Number、Function、Array、RegExp、Date、Error;

        還有剩下的3個對象:Math、JSON、全局對象。

      ?

      一、Date 對象

        ECMAScript 中的 Date 對象是在早期 Java 中的 java.util.Date 類基礎(chǔ)上構(gòu)建的。為此,Date 對象使用自 UTC(Coordinated Universal Time,國際協(xié)調(diào)時間)1979 年 1 月 1 日午夜(零時)開始經(jīng)過的毫秒數(shù)來保存日期。

        

        創(chuàng)建 Date 對象

          要創(chuàng)建一個日期對象,使用new 操作符調(diào)用Date構(gòu)造函數(shù)即可。如下所示:

      let dt = new Date();

          在調(diào)用Date 構(gòu)造函數(shù)時,如果不傳遞參數(shù),新創(chuàng)建的對象會自動獲得當(dāng)前本地系統(tǒng)日期和時間。

          在調(diào)用Date 構(gòu)造函數(shù)同時傳遞日期參數(shù),新創(chuàng)建的對象會獲得參數(shù)對應(yīng)的日期和時間。

      new Date("January 12,2006 22:19:35");
      new Date("January 12,2006");
      new Date(2006,0,12,22,19,35);
      new Date(2006,0,12);
      new Date(1137075575000);
      // 2006-01-12T14:19:35.000Z

      注:上面的各種創(chuàng)建形式都表示 2006 年 1 月 12 日這一天。

      ?

        獲取日期的方法

        通過以下方法,可以獲取具體的日期和時間:

      方法 說明
      getFullYear() 返回 Date 對象“年份”部分的實際數(shù)值
      getMonth() 返回 Date 對象“月份”部分的數(shù)值(0 ~ 11)
      getDay() 返回 Date 對象“星期”部分的數(shù)值(0 ~ 6)
      getDate() 返回 Date 對象“日期”部分的數(shù)值(1 ~ 31)
      getHours() 返回 Date 對象“?時”部分的數(shù)值(0 ~ 23)
      getMinutes() 返回 Date 對象“分鐘”部分的數(shù)值(0 ~ 59)
      getSeconds() 返回 Date 對象“秒”部分的數(shù)值(0 ~ 59)
      getMilliSeconds() 返回 Date 對象“毫秒”部分的數(shù)值(0 ~ 999)
      getTime() 返回 Date 對象與 UTC 時間 1970 年 1 月 1 日午夜之間相差的毫秒數(shù)

      ?

      ?

      ?

      ?

      ?

      ?

      ?

      ?

      let dt = new Date();
      console.log(dt.getFullYear()); // 2019

      ?

      設(shè)置日期的方法

        通過以下方法,可以設(shè)置具體的日期和時間:

      方法 說明
      setFullYear() 設(shè)置 Date 對象中的年份(四位數(shù)字)
      setMonth() 設(shè)置 Date 對象中月份(0 ~ 11)
      setDate() 設(shè)置 Date 對象中月的某一天 (1 ~ 31)
      setHours() 設(shè)置 Date 對象中的小時 (0 ~ 23)
      setMinutes() 設(shè)置 Date 對象中的分鐘 (0 ~ 59)
      setSeconds() 設(shè)置 Date 對象中的秒鐘 (0 ~ 59)
      setMilliSeconds() 設(shè)置 Date 對象中的毫秒 (0 ~ 999)
      setTime() 以毫秒設(shè)置 Date 對象

      ?

      ?

      ?

      ?

      ?

      ?

      ?

      ?

      let dt = new Date();
      dt.setFullYear(2000);
      console.log(dt.getFullYear()); // 2000

      ?

      二、JSON 對象

        JSON(JavaScript Object Notation),是道格拉斯·克羅克福特(Douglas Crockford)于 2001 年發(fā)明 的一種輕量級數(shù)據(jù)存儲格式。易于閱讀和編寫,同時也易于解析和生成。 JSON 作為 JavaScript 的一個子集,同時 ActionScript、C、C#、ColdFusion、E、Java、 JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua 等一系列的語言都對 JSON 提供支持。JSON 在后來成為了一個完全獨立于語言的文本格式,也成為數(shù)據(jù)交換的理想格式。

      ?

        XML

          在 JSON 出現(xiàn)之前,一般使用 XML 來傳遞數(shù)據(jù)。因為 XML 是一種純文本格式,所以它適合在網(wǎng)絡(luò) 上進行數(shù)據(jù)交換。

      <name>ZhangSan</name>
      <age>20</age>
      <gender>male</gender>

        XML 本身不算太復(fù)雜,但是,后來加上了 DTD、XSD、XPath、XSLT 等一大堆復(fù)雜的規(guī)范以后,使用起來就沒那么友好,慢慢“沒落”。

        JSON 語法

        JSON 作為 JavaScript 的一個子集,它所支持的數(shù)據(jù)類型也與 JavaScript 中數(shù)據(jù)類型基本一致:

      ?

          number:和 JavaScript 的 number 完全一致;

          boolean:和 JavaScript 的 boolean 完全一致;

          string:和 JavaScript 的 string 類似;

          null:和 JavaScript 的 null 完全一致;

          array:和 JavaScript 的數(shù)組表示方式 [] 完全一致;

          object:和 JavaScript 的對象表示方式 {} 類似;

      ?

      ?

        為了保證各種語言的統(tǒng)一解析,JSON 規(guī)定字符串必須用雙引號? " ",對象的鍵也必須用雙引號 " "。

      [
           {
               "name": "ZhangSan",
               "age": 20,
               "friends": ["HanMeiMei", "LiZiMing"],
               "isMarried": false,
               "spouse": null
           },
           {
               "name": "HanMeiMei",
               "age": 30,
               "friends": ["ZhangSan"],
               "isMarried": true,
               "spouse": "LiZiMing"
           }
      ]                

        

        JSON 與 JavaScript 對象

        JSON 中的 [] 與 JavaScript 中的數(shù)組對象、JSON 中的 {} 與 JavaScript 中的 JSON 式對象,他們并不是同一個東西。

        JSON 是 JavaScript 中對象的字符串表示方式,本質(zhì)上是 string,而JavaScript 中的數(shù)組和 JSON 式對 象,本質(zhì)上是 object。

      ?

        JSON 與 JavaScript 對象互相轉(zhuǎn)換

          JSON 作為一種數(shù)據(jù)存儲格式變得日益流行。從 ES5 開始,就開始出現(xiàn)全局的 JSON 對象,該對象提 供了兩種方法,可以將 JSON 字符串和 JavaScript 對象進行相互轉(zhuǎn)換。

            stringify()  JSON 對象的 stringify() 方法用于將 JavaScript 對象轉(zhuǎn)換為 JSON 字符串

      let data = [{ name: 'HanMeiMei', age: 20 }];
      let JSONData = JSON.stringify(data);

      ?

            parse()  JSON 對象的 parse() ?法?于將 JSON 字符串轉(zhuǎn)換為 JavaScript 對象

      let JSONData = '[{ "name": "HanMeiMei", "age": 20 }]';
      let data = JSON.parse(JSONData);

      ?

      Math 對象

        JavaScript 中提供了一個 Math 對象,用來使用一些數(shù)學(xué)公式和獲取數(shù)學(xué)中的常用值。

        與直接編寫的計算功能相比,Math 對象提供的計算功能執(zhí)行起來要快得多。

      ?

        Math 對象的屬性

          PI     返回圓周率(約等于3.14159)

      ?

        Math 對象的方法

      方法 說明
      abs(x) 返回數(shù)的絕對值
      ceil(x) 對數(shù)進行上舍入
      floor(x) 對數(shù)進行下舍入
      round(x) 對數(shù)進行四舍五入
      max(x,y...) 返回 x,y... 中的最高值
      min(x,y... 返回 x,y...中的最低值
      pow(x,y) 返回 x 的 y 次冪
      random() 返回 0 ~ 1 之間的隨機數(shù)(0<=x<1)

      ?

      ?

      ?

      ?

      ?

      ?

      ?

      ?

      //隨機數(shù)
      let num = Math.random(); // 0 <= num < 1
      let max = 100;
      // 0 <= num < max
      num = Math.random() * max;
      // 0 <= num <= max 整數(shù)
      num = Math.round(Math.random() * max);
      num = parseInt(Math.random() * (max   1)); // 效率更?
      let min = 50;
      // min <= num <= max 整數(shù)
      num = Math.round(Math.random() * (max - min))   min;

      實例:

        創(chuàng)建一個函數(shù),接收兩個參數(shù),生成一個取值范圍在兩個參數(shù)之間的隨機整數(shù)。

      function random(min, max) {
       if (!max) {
       return parseInt(Math.random() * (min   1));
       }
       return parseInt(Math.random() * (max - min   1))   min;
      }

      ?

      基本類型包裝對象

        對象是 JavaScript 語言最主要的數(shù)據(jù)類型,三種原始類型的值:數(shù)值、字符串、布爾值,在一定條件 下,也會自動轉(zhuǎn)為對象,也就是原始類型的“包裝對象”(wrapper)。

        所謂“包裝對象”,是指與數(shù)值、字符串、布爾值分別相對應(yīng)的 Number、String、Boolean 三個內(nèi)置對象。

        這三個內(nèi)置對象可以把原始類型的值轉(zhuǎn)換成(包裝成)對象;包裝后的對象也能轉(zhuǎn)換成 (解包裝成)原始類型的值;這個過程在一定條件下可以自發(fā)的完成,

        這兩個過程分別稱為“自動裝箱”和“自動拆箱”, 包裝對象的設(shè)計目的:

          首先是使得“對象”這種類型可以覆蓋 JavaScript 所有的值,整門語言有一個通用的數(shù)據(jù)模型,

          其次是使得原始類型的值也有辦法使用自己的屬性和方法。

        在 JavaScript 中,曾有一種說法叫做“一切皆對象”,包裝對象就有點這個意思,想要讓一切都用對象來表示。

      let str1 = "abc";// 基本數(shù)據(jù)類型
      let str2 = new String("abc");// 基本數(shù)據(jù)對應(yīng)的包裝對象
      console.log(typeof str1);// 打印結(jié)果:string
      console.log(typeof str2);// 打印結(jié)果:object
      console.log(str1 "def");// 打印結(jié)果:abcdef
      console.log(str2 "def");// 打印結(jié)果:abcdef (自動拆箱,參與基本數(shù)據(jù)類型運算)
      console.log(str1.length);// 打印結(jié)果:3 (自動裝箱,使用包裝對象的屬性)

      ?

        valueOf() 和 toString()

        兩種包裝對象的方法:valueOf() 和 toString()。

          valueOf() 方法返回包裝對象實例對應(yīng)的原始類型的值:

      new Number(111).valueOf() // 結(jié)果:111
      new String('abc').valueOf() // 結(jié)果:"abc"
      new Boolean(false).valueOf() // 結(jié)果:false

          toString() 方法返回對應(yīng)的字符串形式:

      new Number(111).toString() // 結(jié)果:"111"
      new String('abc').toString() // 結(jié)果:"abc"
      new Boolean(false).toString() // 結(jié)果:"false"

      ?

        String 對象

          定義字符串,除了最常用的通過引號定義一個字符串之外,還可以通過構(gòu)造函數(shù) String 來定義字符串。

          

      let str1 = 'hello';
      let str2 = new String('string');
      console.log( typeof str1 ); // string
      console.log( typeof str2 ); // object

      注:這兩種方式創(chuàng)建出來的字符串除了數(shù)據(jù)類型不一樣之外,由于自動裝拆箱的機制,除了一些特別的情況 (比如全等),其它時候在使用上是完全一樣的。

      ?

          字符串的屬性  length:返回字符串的長度。

          

      let str = 'hello string';
      console.log( str.length );

      注意:只能獲取,不能設(shè)置。

      ?

          字符串的方法

              查找字符:

            charAt(index)      返回在指定位置index(從 0 開始)的字符

            charCodeAt(index)   ? 返回在指定位置index(從 0 開始)的字符的ascii編碼

          

              查找位置:

            indexOf(str)      ? 從左往右查找元素,返回匹配的第一個字符str的下標。沒有返回-1

            lastIndexOf(str)    ? ?從右往左查找元素,返回匹配的第一個字符str的下標。沒有返回-1

      ?

              字符串轉(zhuǎn)數(shù)組:

            split(str)         把一個字符串按指定符號str分割成字符串?dāng)?shù)組

      ?

              去掉空格:

            trim()          去除字符串兩邊的空白

            注:也有去除某一邊的。

              連接兩個字符串:

            concat(str)        方法用于當(dāng)前字符串和另一個字符串str,得到新字符串

          

              提取字符串:

            slice(start,end)      ? 截取start到end(不包括)的字符串

            substr(start,length)     截取start開始的length?度的字符串

            subString(start,end)    ? 截取start到end(不包括)的字符串、

      ?

              大小寫轉(zhuǎn)換:

            toLowerCase()      把字符串轉(zhuǎn)換為小寫

            toUpperCase()      把字符串轉(zhuǎn)換為大寫

      let str = " Abc&Def&Ghi&Jkl ".trim().toLowerCase().split("&").join("");
      console.log(str);// 打印結(jié)果:"abcdefghijkl"

      ?

      Number 對象

        定義數(shù)字,同 String。

      let n1 = 111;
      let n2 = new Number('111');
      console.log( typeof n1 ); // number
      console.log( typeof n2 ); // object

        

        數(shù)字的方法

        我們可以直接通過自動裝箱來使用基本數(shù)據(jù)類型對應(yīng)包裝對象的屬性和方法,如 "123".length ,但是數(shù)字類型由于“.”可以解析成小數(shù)點,

        所以在使用時為了避免歧義要使用兩個點或者用“()”括起來, 如:9..toString() 或 (9).toString()。

      ?

          toFixed(num)       該數(shù)轉(zhuǎn)為指定位數(shù)的小數(shù),然后返回這個小數(shù)對應(yīng)的字符串。參數(shù)num(0- 20)為小數(shù)位數(shù)

          toPrecision(num)    ??返回該數(shù)轉(zhuǎn)為指定位數(shù)的有效數(shù)字,參數(shù)num(0-21)為有效數(shù)字的位數(shù)

          toExponential(num)   ? 返回該數(shù)轉(zhuǎn)為科學(xué)計數(shù)法形式,保留num(0-20)位小數(shù)?

          數(shù)字的方法,用的太少了。

      ?

      Boolean 對象

        定義布爾值,同 String。

        

      let n1 = true;
      let n2 = new Boolean(true);
      console.log( typeof n1 ); // boolean
      console.log( typeof n2 ); // object

      ?

      RegExp 對象

        RegExp 對象,即正則表達式(regular expression),描述了一種字符串匹配的模式/規(guī)則 (pattern)??梢杂脕韺崿F(xiàn)驗證、搜索、替換等對字符串的操作。

        正則的聲明

          聲明一個正則對象有兩種方式:

            字面量

      let re = /pattern/modifiers;

            構(gòu)造函數(shù)

      let re = new RegExp( pattern, modifiers );

        參數(shù)說明:

          pattern:模式。描述了一個表達式模式(規(guī)則)。

          modifiers:修飾符。描述了檢索時是否全局檢索、是否區(qū)分大小寫等。

      let re = /a/; // 表示這個 re 的正則的規(guī)則就是“包含a”

      ?

        正則對象的方法

      方法 說明 返回值
      test() 在字符串中搜索指定的值 布爾值
      exec() 在字符串中搜索指定的值 對象,包含搜索值、搜索值位置、源字符串

      ?

      ?

      ?

      ?

      let re = /to/;
      let str = 'nice to meet you ~';
      console.log(re.test(str));
      // true
      console.log(re.exec(str));
      // [ 'to', index: 5, input: 'nice to meet you ~' ]

      ?

         常用規(guī)則

            字符組,用于匹配某一組字符中的任意一個字符。

      表達式 說明
      [] 匹配?括號中的任意一個字符
      [^] 匹配不在方括號中的任意一個字符
      [0-9] 匹配 0 ~ 9 之間的任意一個數(shù)字
      [a-z] 匹配 a ~ z 之間的任意一個小寫字母
      [A-Z] 匹配 A ~ Z 之間的任意一個大寫字母

      ?

      let re = /[abc]/;
      let str = 'nice to meet you';
      re.test(str); // true

      ?

              簡記:

      表達式 說明
      \w 匹配任意數(shù)字、字母、下劃線字符。等同于 [0-9a-zA-Z_]
      \W 匹配任意非數(shù)字、字母、下劃線字符。等同于 [^0-9a-zA-Z_]
      \d 匹配任意數(shù)字字符。等同于 [0-9]
      \D 匹配任意非數(shù)字字符。等同于 [^0-9]
      \s 匹配空白字符
      \S 匹配任意非空白字符
      . 匹配除回車(\r),換行(\n),行分隔符(\u2028)和段分隔符(\u2029)以外的任意字符

      注:妥善的利用互補屬性,可以得到一些巧妙的效果。如:[\s\S]、[\w\W]、[\d\D] 都可以表示任意字符。

      ?

              量詞:用來匹配目標字符的出現(xiàn)個數(shù)。

      表達式 說明
      n{x} 匹配 x 個 n
      n{x,y} 匹配 x 到 y 個 n
      n{x,} 匹配 x 到多個 n
      n? 匹配 0 個到 1 個 n,等同于 n{0,1}
      n 匹配 1 個到多個 n,等同于 n{1,}
      n* 匹配 0 個到多個 n,等同于 n{0,
      // 匹配美式 color 和 英式 colour
      let re = /colou?r/;
      console.log(re.test('color')); // true
      console.log(re.test('colour')); // true

      ?

                特殊字符

      表達式 說明
      | 表示“或
      \ 轉(zhuǎn)義符
      () 對規(guī)則進行分組
      ^n 匹配任何以 n 開頭的字符
      n$ 匹配任何以 n 結(jié)尾的字符

                修飾符

      表達式 說明
      i 匹配時不區(qū)分大小寫
      g 全局匹配,即不會匹配到一個就停止
      m 多行匹配,即不會只匹配一行字符(需結(jié)合 ^ 或 $ 一起使用),其中多行表示通過"\n"換 行
      let re = /^b./m;
      let str = "aaaaa\nbaaaaa\naaaaa";
      console.log(re.test(str));

      ?

        支持正則的 String 對象的方法

      方法 描述
      search() 用于搜索字符串中指定的子字符串,或是與正則表達式相匹配的子字符串。
      match() 用于搜索字符串中指定的子字符串,或是與正則表達式相匹配的子字符串。
      replace() 用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
      split() 用于在字符串中通過指定字符分割字符串成數(shù)組,或通過指定正則表達式匹配的子串來分割。
      let str = 'Mr Blue has a blue house and a blue car';
      console.log(str.search('blue'));// 打印結(jié)果:14
      console.log(str.search(/blue/gi));// 打印結(jié)果:3
      console.log(str.match('blue'));// 打印結(jié)果:["blue", index: 14, input: "Mr
      Blue has a blue house and a blue car", groups: undefined]
      console.log(str.match(/blue/gi));// 打印結(jié)果:["Blue", "blue", "blue"]
      console.log(str.replace('blue', 'red'));// 打印結(jié)果:"Mr Blue has a red
      house and a blue car"
      console.log(str.replace(/blue/gi, 'red'));// 打印結(jié)果:"Mr red has a red
      house and a red car"

      ?

      ?

      其它對象

        全局對象

          對于任何 JavaScript 程序,當(dāng)程序開始運行時,JavaScript 解釋器都會初始化一個全局對象。

          全局對象,它預(yù)定義了全局的屬性、函數(shù)、對象、構(gòu)造函數(shù)以便你開發(fā)使用。

          比如說:

              全局的屬性: undefined、Infinity 和 NaN

              全局的對象: Math、JSON 和 Number

              全局的函數(shù): isNaN()、isFinite()、parseInt() 和 eval() 等

              全局的構(gòu)造器對象: Date()、RegExp()、String()、Object() 和 Array() 等

      注:不同的環(huán)境中,全局對象是不同的。

      ?

        Error對象

          error,指程序中的非正常運行狀態(tài),在其他編程語言中稱為“異常”或“錯誤”。

          解釋器會為每個錯誤情形創(chuàng)建并拋出一個 Error 對象,其中包含錯誤的描述信息。

          ECMAScript 定義了六種類型的錯誤。除此之外,還可以使用 Error 構(gòu)造方法創(chuàng)建自定義的 Error 對象, 并使用 throw 語句拋出該對象。

          也可以使用 try-catch-finally 語句處理異常。

              六種錯誤:

                    ReferenceError :找不到對象時

                    TypeError :錯誤的使用了類型或?qū)ο蟮姆▏〞r

                    RangeError :使用內(nèi)置對象的方法時,參數(shù)超范圍

                    SyntaxError :語法寫錯了

                    EvalError :錯誤的使用了 Eval

                    URIError : URI 錯誤

      throw new Error("我錯了!");//通過throw關(guān)鍵字拋出?定義錯誤
      
      
      try {
       say("Welcome!");
      }catch(err) {//如果發(fā)?錯誤,捕獲錯誤對象,存放在變量err中
       console.log(err.name   ":"   err.message);//打印錯誤對象的信息
      }

      ?

            

      來源:https://www./content-4-597201.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多