Javascript學習筆記【第三章】3

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第三章3.html</title>
</head>
<body>

<script type="text/javascript">


    //模式匹配
    var _p=/^HTML/;                 //匹配以HTML開始的字符串
    _p=/^[1-9][0-9]*/;              //匹配第一個非零數字,後面是任意個數字
    _p=/\bjavascript\b/i;           //匹配單詞 javascript 忽略大小寫
    var pa="Javascript";
    console.log(_p.test(pa));

    pa ="testing: 1,2,3";
    _p=/\d+/g;                      //匹配所有包含一個或多個實例
    console.log(_p.test(pa));       //True
    console.log(pa.search(_p));     // 9 : 首次匹配成功的位置
    console.log(pa.match(_p));      // [1,2,3] : 所有匹配組成的數組
    console.log(pa.replace(_p,"#"));// 將匹配成功的替換成#
    console.log(pa.split(/\D+/));   // 用非數字字符截取字符串

    //布爾值
    // undefined null 0 -0 NaN "" 空字符串 都會被轉化成false
    if(!0){
        console.log("!0");
    }

    // null 空 undefined 未定義 兩者相等 都表示值的空缺 嚴格相等運算符 === 則不等
    if(null==undefined){
        console.log("null==undefined");
        if(null===undefined){ // 不等,
            console.log("null==undefined");
        }
    }

    //全局對象
    Math,JSON;//等等


    if(!([]==[])){//兩個單獨的數組永不相等
        console.log("!([]==[])");
    }
    if(!({}=={})){//兩個單獨的對象永不相等
        console.log("!({}=={})");
    }

    var a=[];
    var b=a;    //變量b引用同一個數組
    b[0]=1;     //用過變量b來修改引用的數組
    console.log(a[0]);// 原始變量a也會被更改  1
    if(a===b){
        console.log("a和b引用同一個數組,因此它們相等");
    }


    //將數組賦值給一個變量,僅僅是賦值的引用值,對象本身並沒有複製一次。


    //類型轉化
    if("0"==0){
        console.log("true 在比較之前字符串轉化成數字");
    }
    if(false==0){
        console.log("true 在比較之前布爾值轉化成數字");
    }
    if(false=="0"){
        console.log("true 在比較之前都轉化成數字");
    }


    //顯式類型轉化
    Number("3");        // 3
    String(false);      //"false"
    Boolean([]);        //true
    Object(3);          // new Number(3);


    //試圖把null undefined 轉換成對象則拋出異常
    try{
        undefined.toString(); //Uncaught TypeError: Cannot read property 'toString' of undefined 報錯
    }catch(e){
        console.error(e.toString());
    }


    if(!!1){ //等價於 Boolean(1) 注意是雙歎號
        console.info("!!1");
    }


    //Number類定義的 toString()方法可以進行 2-36 進制轉化
    var n=250;
    console.info("250 轉換成二進制:"+n.toString(2));
    console.info("250 轉換成八進制:"+n.toString(8));
    console.info("250 轉換成十進制:"+n.toString(10));
    console.info("250 轉換成十六進制:"+n.toString(16));

    var t=true;                 //一個值
    var T=new Boolean(true);    //一個對象
    if(t==T){ //true 相等
        console.info(1);
        if(!(t===T)){ //不等  //嚴格相等符號  不轉換類型 則不等
            console.info("t===T = false");
        }
    }


    var now=new Date(); //當前時間(太平洋時間)
    console.log(now.valueOf()); //1442546485061
    console.log(typeof (now+1)); //string 將日期轉化成字符串
    console.log(typeof (now-1)); //number 使用對象到數字的轉換
    console.log(now== now.toString()); //true 隱式的和顯式的字符串轉換
    console.log(now>now-1); //true 轉化成數字






</script>

</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章