07.JS對象-2

前言:
學習一門編程語言的基本步驟
(01)瞭解背景知識
(02)搭建開發環境
(03)語法規範
(04)常量和變量
(05)數據類型
(06)數據類型轉換
(07)運算符
(08)邏輯結構
(09)函數
(10)對象
10.對象
    包裝對象,目的是讓原始類型像引用類型同樣,具備屬性和方法。
    JS提供了3種包裝對象:String,Number,Boolean
    04.String對象
        1) 將任意數據轉爲字符串
           new String(值)     返回對象,使用和字符串沒有區別javascript

    //String對象——new String()
    var str1=new String ("a");//帶new都是構造函數,能夠返回函數
    console.log(str1,typeof str1);//String {"a"} "object"

           String(值)     返回字符串java

    //String對象——String
    var str1="a";
    console.log(str1+'b');
    //將任意數據轉爲字符串——String()
    var str2=String(true);//普通函數
    console.log(str2,typeof str2);//true string

        2) 轉義字符—— \
            解釋:轉換字符的意義
            用法:放在要轉換意義的字符前邊
            注意:斜槓:"/" 與反斜槓:"\" ,此處不可互換
            \’ 將特殊意義的引號轉成普通字符
            \n 將字符n轉換成換行符
            \t 將字符t轉換成製表符(tab鍵效果)正則表達式

    //轉義字符——\ 
    console.log("It's a cat");// 雙引號,裏外使用不一樣的引號區分
    console.log('It\'s a cat');//單引號與單引號的使用是衝突的,可以使用轉義字符
    console.log('hello \n world');//單引號   \n   n不見了,而且world換行
    console.log('a\tb')//a    b,製表符,tab鍵四個空格

        3)字符串下的api
            length 獲取字符串的長度。數據庫

    // 獲取長度——length
    var str='javascript';
    console.log(str.length);//10

            charAt() 獲取下標對應的字符,也可使用數組形式 字符串[下標]。編程

    //獲取下標對應的字符——charAt()
    var str='javascript';
    console.log(str[0]);//j
    console.log(str.charAt(0));//j

            split(sep)將字符串按照制定的字符分割成數組,sep是指定的字符。api

    //將字符串按照制定的分隔符號轉爲數組——split(sep)
    var str='a-b-c';
    console.log(str.split("-"));// ["a", "b", "c"]
    //將數組按照制定的分割符轉爲字符串,
    //注意兩處區別,一個數數組變字符串,一個是字符串變數組
    var arr=['a','b','c','d'];
    console.log(arr.join("-"));//a-b-c-d

            slice(start,end) 截取字符串,start開始的下標,end結束的下標,不包含end自己,end爲空截取到最後,負數表示倒數。數組

    //截取字符串——slice(start,end)
    var str='javascript';
    console.log(str.slice(4));//下標4以後截取到最後
    console.log(str.slice(4,7));//截取到下標7,可是不包含下標7
    console.log(str.slice(-3));//倒數第三位截取到最後
    console.log(str.slice(-3,-1));//倒數第三位截取到倒數第二位

            substr(start,count)截取字符串,start開始的下標,count截取的長度,若是count爲空,截取到最後;start爲負數,表示倒數。dom

    //截取字符串,按長度來截取——substr(start,count)
    var str='javascript';
    console.log(str.substr(2,3));//從下標2開始截取,截取三位
    console.log(str.substr(4));//end爲空,截取到最後
    console.log(str.substr(-3));//負數爲倒數

            substring(start,end) 截取字符串,start開始的下標,end結束的下標,不包含end自己,若是end爲空截取到最後,若是下標爲負數自動轉成0。編程語言

    //截取字符串——substring(start,end)
    var str='javascript';
    console.log(str.substring(4));
    console.log(str.substring(4,7));//從小標4開始,截取到下標6
    //負數轉爲0
    console.log(str.substring(-3,-1));//-3表明0,因此是截取不到東西的
    console.log(str.substring(1,3));
    console.log(str.substring(3,1));//自動轉換先後的數字大小,下標位置大的數值會轉換到後面

            indexOf(value,start)查找某個字符串出現的下標,value要查找的字符串,start開始的下標,默認是0,若是找不到返回-1。函數

    //獲取某個字符串的下標——indexOf(value,start)
    var str='javascript';
    console.log(str.indexOf('s'));
    console.log(str.indexOf('a',2));//2的意思是下標2的位置開始
    console.log(str.indexOf('a',5));//-1,找不到返回爲-1

            lastIndexOf(value)查找某個字符串最後一次出現的下標,找不到返回-1。

    //查找某個字符最後一次出現的下標——lastIndexOf(value)
    var str='javascript';
    console.log(str.lastIndexOf('a'));//3
    console.log(str.lastIndexOf('b'));//找不到返回-1

            toUpperCase() 將英文字母轉大寫

    //轉大寫——toUpperCase()
    var str='JavaScript';
    console.log(str.toUpperCase());//JAVASCRIPT

            toLowerCase() 將英文字母轉小寫

    //轉小寫——toLowerCase()
    var str='JavaScript';
    console.log(str.toLowerCase());//javascript

            對比slice和 substring
            slice爲截取數組中的元素,slice中下標容許使用負數表示倒數,slice中下標的順序start小於end
            substring爲截取字符串,substring下標負數自動轉成0,substring中下標大小不分順序,會自動排序
    05.Number對象
        new Number(值)   將數據轉爲數值型,返回對象

    //將數據轉爲數值型,返回數值—— Number(值)
    var num1=2;
    var num2=Number(true);
    console.log(num1,num2);

        Number(值)       將數據轉爲數值型,返回數值

    //將數據轉爲數值型,返回對象—— new Number(值)構造函數
    var num3=new Number(null);//包裝對象
    console.log(num3,typeof num3);

        Number.MAX_VALUE       最大值

    //最大值——Number.MAX_VALUE       
    console.log(Number.MAX_VALUE);//最大值1.7976931348623157e+308

        Number.MIN_VALUE        最小值,指小數點後面的位置很是多

    //最小值——Number.MIN_VALUE        
    console.log(Number.MIN_VALUE);//最小值5e-324

        toFixed()     取小數點後N位

    //取小數點後N位——toFixed() 
    var num4=2*3.14*5;
    console.log(num4.toFixed(2));//取小數點後2位

        toString(n)     將數值轉爲字符串,同時能夠設置進制,N就是設置的進制,2,8,16

    //將數值轉爲字符串——toString(n)     
    var num6=13;
    console.log(num6.toString(8));//轉爲8進制

    06.Boolean對象
         new Boolean(值)    將數據轉爲布爾型,返回對象

    //new Boolean(值)      將數據轉爲布爾型,返回對象
    var b3=new Boolean(3);
    console.log(b3,typeof b3);

         Boolean(值)    將數據轉爲布爾型,返回布爾型

    //Boolean(值)        將數據轉爲布爾型,返回布爾型
    // NaN 0  "" undefined null,只有這5個是false  其餘都是true
    var b1=true;
    var b2=Boolean(NaN);
    console.log(b1,b2);

         !!值     轉數據隱式轉換爲布爾型

    // !!值                 轉數據隱式轉換爲布爾型
    var b5=!!0;
    console.log(b5);

    07.匹配模式(掌握)
        做用:用於查找,替換字符串
        search(value)    用於查找知足條件的第一個下標,相似於indexOf,若是找不到返回-1。

    //查找知足條件的第一個下標,找不到返回-1——search(value)
    var str='把gudu當成晚餐que難如下嚥,把heiye看成溫暖QUE難以入眠';
    console.log(str.search('gudu'));//1
    console.log(str.search('GUDU'));//-1  找不到
    console.log(str.search(/que/));//放在正則表達式中

        match(value)    用於查找知足條件的字符串,返回一個數組。

    //查找知足條件的字符串,返回一個數組——match(value)
    // i -> ignore  忽略大小寫
    // g -> global   全局查找
    var str='把gudu當成晚餐que難如下嚥,把heiye看成溫暖QUE難以入眠';
    console.log(str.match('heiye'));//返回一個數組
    console.log(str.match(/que/i));//i-ignore忽略大小寫
    console.log(str.match(/que/g));//g-global 全局的查找
    console.log(str.match(/que/ig));//全局忽略大小寫查找

        replace(value1,value2)    查找並替換,value1要查找的字符串,value2要替換的字符串。

    //查找並替換——replace(value1,value2)
    var str='把gudu當成晚餐que難如下嚥,把heiye看成溫暖QUE難以入眠';
    console.log(str.replace(/heiye/ig,'baitian'));//替換

    08.Math對象
        用法:不須要建立,能夠直接使用,
        PI 取圓周率

    //獲取圓周率——PI
    console.log(Math.PI);

        abs() 取絕對值

    //取絕對值——abs()
    console.log(Math.abs(18-21));

        max() 取最大值

    //取一組數字的最大值——max() 
    console.log(Math.max(23,9,78,6,45));

        min() 取最小值

    //取一組數字的最小值——min()
    console.log(Math.min(23,9,78,6,45));

        pow() x的y次冪

    //取x的y次冪——pow()
    console.log(Math.pow(5,2));

        ceil() 向上取整

    //向上取整——ceil() 
    console.log(Math.ceil(5.02358));

        floor() 向下取整

    //向下取整——floor()
    console.log(Math.floor(4.999));

        round() 四捨五入取整

    //四捨五入取整——round()
    console.log(Math.round(4.51));

        random() 取0-1之間的隨機數 >=0 <1

    //取隨機0-1之間的隨機數——random() 
    console.log(Math.random());

    09.Date對象
        用於對日期時間的存儲和計算
        1)建立Date對象
            new Date()

   //建立Date對象
   //獲取當前系統時間
   var d1=new Date();
   console.log(d1);//Tue Feb 25 2020 15:23:13 

   //手動輸入的日期
   var d2=new Date('2020/02/25');
   console.log(d2);//默認爲0時區的0點0分0秒
   var d3=new Date('2020/02/25 10:36:50');
   console.log(d3);//輸入是什麼時間顯示就是什麼時間
   var d4=new Date(2020,1,25,10,36,50);//月份範圍是0-11之間,因此1,是2月
   console.log(d4);

   //獲取數據庫存儲的是距離計算機元年的毫秒數
   //默認爲計算機元年時間爲1970-1-1 0:0:0 
   //365*24*60*60*1000
   var d5=new Date(49*365*24*60*60*1000);
   console.log(d5);//2018/12/20

        2)獲取存儲的日期時間

   //獲取存儲的日期時間
   var d=new Date('2020/02/25 10:56:30');
   console.log(d.getFullYear());//獲取年
   console.log(d.getMonth()+1);//獲取月份,月份範圍是0-11之間,因此+1才能正常顯示
   console.log(d.getDate());//獲取日
   console.log(d.getHours());//獲取小時,複數形式
   console.log(d.getMinutes());//獲取分鐘
   console.log(d.getSeconds());//獲取秒數
   console.log(d.getMilliseconds());//獲取毫秒數
   console.log(d.getDay());//獲取星期,0-6,一個星期,星期日-星期六
   console.log(d.getTime());//獲取距離計算機元年的毫秒數

   //練習:建立Date對象,保存當前的系統時間,打印‘今天是2020年2月25日 星期二 15:39’
   var now=new Date();
   var year=now.getFullYear();
   var month=now.getMonth()+1;
   var date=now.getDate();
   var hours=now.getHours();
   var minutes=now.getMinutes();
   var day=now.getDay();
   var arr=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
   console.log(arr[day]);//把day做爲下標放在數組中
   //判斷月份是否小於10,若是小於,增長前導0
   if(month<10){
   month='0'+month
   }
   console.log(
      '今天是'+year+'年'+
      month+'月'+
      date+'日'+
      arr[day]+' '
      +hours+':'+
      minutes
      );

   //練習:計算距離2020年12月25日還有多少天?多少時?多少分?多少秒?
   //建立兩個對象,
   var c=new Date('2020/12/25');//聖誕節日期
   var now=new Date();//本機時間
   //兩個對象直接相減,獲取相差的毫秒數
   var d=c-now;
   //相差的值轉爲秒
      d=Math.floor(d/1000);
   //計算相差天數
   var day=Math.floor(d/(24*60*60));
   //去除天數,計算相差的小時
   var hour=d%(24*60*60);
      hour=Math.floor(hour/3600);
   //去除小時,計算相差的分鐘
   var minutes=d%3600;
   var minutes=Math.floor(minutes/60);
   //去除分鐘,計算相差的秒鐘
   var second=d%60;
   //打印最終結果
   console.log(
   '距離2020年的聖誕節還有'+
   day+'天'+
   hour+'小時'+
   minutes+'分鐘'+
   second+'秒');

        3)獲取本地字符串格式

   //獲取本地字符串格式
   var d=new Date();
   console.log(d.toLocaleString());//獲取日期時間字符串
   console.log(d.toLocaleDateString());//獲取日期字符串
   console.log(d.toLocaleTimeString());//獲取時間字符串

        4)修改日期時間

    //修改日期時間
    var d1=new Date('2020/02/25 15:20:30');
    d1.setFullYear(2018);//修改年份
    d1.setMonth(8);//修改月份範圍0-11,8是九
    d1.setDate(3);
    console.log(d1);
    d1.setHours(10);
    d1.setMinutes(36);
    d1.setSeconds(50);
    var d2=new Date('2020/02/25 15:20:30');
    d2.setMilliseconds(1111111111);//修改距離計算機元年的毫秒數後,時間會發生變化
    console.log(d1);
    console.log(d2);

        5)複製克隆Date對象

    //克隆date對象
    //原理在06.JS對象-1——02.函數對象——3)對象的存儲
    var d1=new Date('2020/02/25 15:20:30');
    //var d2=d1;//複製d1的地址給d2
    var d2=new Date(d1);//克隆了一個對象
    d1.setFullYear(2019);
    console.log(d1);//Mon Feb 25 2019 15:20:30
    console.log(d2);//Tue Feb 25 2020 15:20:30

    //練習:建立Date對象,保存員工的入職時間」2018/05/31」,3年合同到期,計算到期時間,合同到期前1個月,續簽合同,
    //若是是週末,提早到週五,若是是週六,那就提早一天,續簽時間,打印出本地日期時間字符串格式
    //入職時間
    var d1=new Date('2018/05/31');
    //到期時間
    var d2=new Date(d1);
    //三年後
    d2.setFullYear(d2.getFullYear()+3);
    //續簽時間
    var d3=new Date(d2);
    //計算提早一個月
    d3.setMonth(d3.getMonth()-1);
    //判斷周幾
    var day=d3.getDay();
    if (day===6){
      //若是是週六,提早一天
      d3.setDate(d3.getDate()-1);
    }else if(day===0){
      //若是是週末,提早兩天
      d3.setDate(d3.getDate()-2);
    }
    console.log("入職時間是"+d1.toLocaleDateString());+
    console.log("到期時間是"+d2.toLocaleDateString());+
    console.log("續簽時間是"+d3.toLocaleDateString());

    10.錯誤處理
        語法錯誤(SyntaxError)——錯誤的使用了中文符號,缺乏括號

    //錯誤處理
    //js程序執行前,檢查是否有語法錯誤
    //語法錯誤——SyntaxError
    var a=1;//標點符號使用錯誤

        引用錯誤(ReferenceError)——使用了未聲明的變量

    //引用錯誤。使用未聲明的變量——ReferenceError
    console.log(a);//a沒有聲明

        類型錯誤(TypeError)——錯誤的使用了小括號

    //類型錯誤,錯誤的使用了符號——TypeError
    var b=2;
    b();//b不是一個函數,不能調用

    var person={
      ename:"tom"
    }
    person.ename();//person.ename不是一個函數

        範圍錯誤(RangeError)——參數超出了範圍

    //範圍錯誤,參數超出了範圍——RangeError  
    var arr=new Array(-3);
    console.log(arr);

        說明:語法錯誤出現後一行代碼都不執行,其餘錯誤出現後會影響後面代碼的執行


        自定義錯誤:throw '自定義的錯誤信息'

    //自定義錯誤——throw '錯誤'
    var num="abc";
    //若是num不是數字,拋出一個自定義的錯誤
    //先調用number轉數值
    if (isNaN(num)){//判斷是否不是一個數字
      throw '請提供一個數字';
    }

        自定義錯誤:try{  }catch(err){  },嘗試執行,不阻止後續代碼執行
        Try{
        //可能出現的錯誤(類型錯誤,引用錯誤,範圍錯誤,自定義錯誤)
        }catch(err){
        //若是try中的代碼報錯,纔會執行此處的代碼,會把錯誤的信息交給err
        }

    //自定義錯誤——try{}catch(err){}嘗試執行
    //提供一個小於10的數字,
    try{var num=11;
        if (num>10){
          throw"太大了";
        }
    }catch (err){//只有try中的代碼報錯,纔會執行catch中的代碼,錯誤信息交給err
      console.log(err+":請輸入一個小於10的數字");
    }
相關文章
相關標籤/搜索