zoukankan      html  css  js  c++  java
  • 类型检测

    类型检测小结:

    typeof:适合基本类型及function检测,遇到null失效。

    [[Class]]:通过{}.toString拿到,适合内置对象和基元类型,遇到null和undefined失效(IE678等返回[object Object]).

    instanceof:适合自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时失效。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
        <title>Document</title>
    
        
    
    <script type="text/javascript">
    // var a = [10,1,2,3,4,8,9];
    // function max(a){
    //                         var len = a.length-1;
    //                         alert(a.length-1)
    //                         var maxnum=a[len];
    //                         while (len--) {
    //                  maxnum=Math.max(maxnum,a[len])
    //                         }
    //                         return maxnum;
    //                 }
    //                 alert(max(a));
    var num =32;
    num="this is a string"
    console.log(32+32);//64
    console.log("32"+32);//3232
    console.log("32"-32);//0
    var x='the answer is'+42;
    var y=42+'is the answer';
    console.log(x);//the answer is42
    console.log(y);//42is the answer
    console.log("37"-7);//30
    console.log("37"+7)//377
    console.log(null-0);//0
    console.log(null);//null
    //巧用+/—规则转换类型:num-0变量null转为数字;数字变成字符串num+"".
    //等和严格等:
    console.log("1.23"==1.23);//true
    console.log(0==false);//true
    console.log(null==undefined);//true
    console.log(new Object()==new Object());//false
    console.log([1,2]==[1,2])//false
    //console.log(a===b);
    //严格等,等号两边的类型:
    console.log(null===null);//true
    console.log(undefined===undefined);//true
    console.log(NaN===NaN);//false
    console.log(new Object()===new Object());//false
    //不严格等:类型相同,同===;类型不同,尝试类型转换和比较
    console.log(null==undefined);//ture
    //console.log(number==string);
    console.log(1=="1.0");//true
    //console.log(boolean==number);
    console.log(1==true);//true
    //console.log(object==number|string);
    console.log(new String('hi')=='hi')//true
    // var str="string"//undefined
    // var strObj=new String("string")//undefined
    // str//"string"//0"s",1 "t",2 "r",3"i",4"n",5"g".
    // str//"string"
    // str.length//6
    // str.t=10//10
    // str.t//undefind
    // str.t=3//3
    // var number=123//undefined
    // var numObj=new Number("number")//undefined
    // number.length//undefined
    // number+number//246
    // number+""//"123"
    //类型检测
    //基本类型 函数对象typeof
    console.log(typeof 100)//number
    console.log(typeof true)//boolean
    console.log(typeof function(){})//function
    console.log(typeof(undefined))//undefined
    console.log(typeof new Object())//object
    console.log(typeof [1,2])//array
    console.log(typeof NaN)//number*
    console.log(typeof null)//object*
    //obj instanceof Object
     console.log([1,2] instanceof Array)//true
     console.log(new Object() instanceof Array)//false
     console.log()
    console.log()
    //Object.prototype.toString
    console.log(Object.prototype.toString.apply([1,2,3]))//[object Array]
    console.log(Object.prototype.toString.apply(function(){
        var a=1,b=2,c;
        return c=a+b;
    }))//[object Function]
    console.log(Object.prototype.toString.apply(null))//[object Null]
    console.log(Object.prototype.toString.apply(undefined))//[object Undefined]
    
    </script>
    </head>
    <body>
    
    </body>
    
    </html>
  • 相关阅读:
    Tomcat 配置 login 和 gas
    Mac系统终端命令行不执行命令 总出现command not found解决方法
    NodeJS入门---nodejs详细安装步骤
    Android UI 自动化-Android环境安装
    UI自动化-Chrome元素定位插件CreateXpath的安装及使用
    eclipse解决中文乱码
    pytest的allure的环境配置
    pytest基础简介及实践举例
    Appium 工作原理及 Desired Capabilities
    Appium_adb常用命令总结
  • 原文地址:https://www.cnblogs.com/xl900912/p/4218293.html
Copyright © 2011-2022 走看看