• JQuery学习笔记:typeof的使用


    JQuery的前面几句就把我给搞得晕了头,只能对其中的一点一滴去测试。第一句:
    if (typeof window.jQuery == "undefined")

    typeof的语法是:typeof[(]expression[)]
    即typeof后面跟一个表达式,要不要括号都可以。它将返回一个字符串,表示表达式

    的类型,而类型只有六种可能:number、string、boolean、object、function、

    undefined
    这是typeof返回的类型,与实际的数据类型,以及内部对象还是有区别的。
    实际的类型可以参考微软的一份JScript帮助文档中的“JScript 的数据类型”,其中

    还有null,但null经过typeof返回的类型是object。而一个变量,如果没有赋值时,

    它的类型为undefined,但它值为null。
    var x;
    alert(typeof(x));
    if (x==null) alert("OK");
    内部对象比这六个多,其中五个有对应的,它们都在首字母大写:Number、String、

    Boolean、Object、Function。undefined没有对应对象。

    以下把几种情况都列出来:
    n=12.2;
    alert("n=12.2:" + typeof n);

    n="12.2";
    alert("n=\"12.2\":" + typeof n);

    n=false;
    alert("n=false:" + typeof n);

    n=[12, 11, 13];
    alert("n=[12, 11, 13]:" + typeof n);
    alert("n[1]:" + typeof n[1]);

    obj=function (){var i=0; function show() { alert(i); }};
    n=new obj();
    alert("n=new obj():" + typeof n);

    n=function () { alert("OK"); };
    alert("n=function () { alert(\"OK\"); }:" + typeof n);

    alert("nnnnnn:" + typeof nnnnnn);

    alert("null:" + typeof null);

    以typeof的误用有如下两种情况:
    if (x == undefined)
    if (typeof(x) == undefined)
    正确的应该是
    if (typeof(x) == "undefined")

    对比这两句话:
    //var x;
    if (typeof(x) == "undefined") alert("OK1");
    if (x==null) alert("OK2");
    有定义语句var x;时,两句都执行正常。
    如果没有定义语句时,第一句没问题,第二句就提示'x'未定义

    再对比这两句:
    x=null;
    if (typeof(x) == "undefined") alert("OK1");
    if (x==null) alert("OK2");

    因此用typeof来检测变量是否有定义是最合适不过的了。返回到最原始的问题:
    if (typeof window.jQuery == "undefined")
    {
     var jQuery = ...
     ...
    }
    这段代码加上里面的程序体,就能够保证程序体只被执行一次,第二次执行时,

    typeof window.jQuery就是"function"了。举例:有个文件,script引用写了两遍
    1.htm
    <html>
    <head>
    <script language="javascript" type="text/javascript"

    src="D:/inetpub/JQuery/JQ.js"></script>
    </head>
    <body>
    <script language="javascript" type="text/javascript"

    src="D:/inetpub/JQuery/JQ.js"></script>
    <script>
    alert("|" + $.trim("  abc  ") + "|");
    </script>
    </body>
    </html>
    通过断点,我们可以看出对于jQuery的构建,只在第一次执行。

    不过,我感到可惜的是,如果不同窗口,就要分别执行了。如以下两个文件:
    1.htm
    <html>
    <head>
    <script language="javascript" type="text/javascript"

    src="D:/inetpub/JQuery/JQ.js"></script>
    </head>
    <body>
    <a href="2.htm">链接到第二个页面2.htm</a>
    <script>
    alert("|" + $.trim("  abc  ") + "|");
    </script>
    </body>
    </html>

    2.htm
    <html>
    <head>
    <script language="javascript" type="text/javascript"

    src="D:/inetpub/JQuery/JQ.js"></script>
    </head>
    <body>
    第二页面
    <script>
    alert("|" + $.trim("  abc  ") + "|");
    </script>
    </body>
    </html>
    jQuery的构建体就执行了两遍。

  • 相关阅读:
    Python3+PyMysql
    Python3 pip
    Python日志模块封装
    SVN状态图标无法显示
    添加修改数据库表以及字段描述信息
    群晖 6 控制面板信息中心 空白解决
    nextcloud迁移后报权限问题
    ESXI中第三方sata卡遇到的问题“对 CDROM 映像文件 执行操作失败”
    网站推荐 印章制作大师
    转 黑群晖7.0.1和6.0 中Active Backup for Business套件激活方法
  • 原文地址:https://www.cnblogs.com/yzx99/p/1254356.html
Copyright © 2020-2023  润新知