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>

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