JQuery学习笔记:typeof的使用

转载 2013年12月04日 16:19:50

转载:http://www.cnblogs.com/yzx99/archive/2008/07/28/1254356.html


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的构建体就执行了两遍。


[知了堂学习笔记]_JavaScript之typeof运算符

请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php1.主要计算某个变量的数据类型是什么 2.语法:typeof变量...
  • J_YTL
  • J_YTL
  • 2017年12月08日 17:42
  • 0

jQuery学习笔记—— .html(),.text()和.val()的使用

本节内容主要介绍的是如何使用jQuery中的.html(),.text()和.val()三种方法,用于读取,修改元素的html结构,元素的文本内容,以及表单元素的value值的方法。jQuery中为我...

XMPP高级编程---使用Jquery和Javascript学习笔记二

在搭建好openfire和了解了XMPP的基本知识后就可以来看书中的一些例子,书中的源代码可以在Github的下面连接中招到 https://github.com/metajack/profxmpp...

jQuery学习笔记—— .html(),.text()和.val()的使用和区别

本节内容主要介绍的是如何使用jQuery中的.html(),.text()和.val()三种方法,用于读取,修改元素的html结构,元素的文本内容,以及表单元素的value值的方法。jQuery中为我...

MVC学习笔记之使用JQuery方式发送Ajax请求调用后台Controller

通常情况下在MVC模式中我们会采用使用controller获取业务数据(model)并将业务数据提交给view,或者由view传递数据给controller,再由controller更新model。在...

OpenLayers学习笔记5——使用jQuery UI实现查询并标注(UI篇)

最近事情很多,老板给的压力也很大,经常出差,另外项目和个人研究还都要跟上,本月要交论文,还要写专利,只能抽时间来学习其他的东西了。关于OpenLayers的在博客中不会写太多具体的实现(网上有很多op...

OpenLayers学习笔记9——使用servlet与jquery-ui实现自动提示输入

做软件都要从用户的角度来做,怎么样让用户输入的更少,体验更好,我们就应该怎么来做,也就是需求驱动,客户都是大爷!题外话说完了,步入正题,本文实现在查询时输入查询条件时,自动提示数据库中包含改值所有记录...

Struts学习笔记(三):Ajax +json+JQuery的综合使用

在实际项目中Ajax +json+JQuery一般是综合使用的,项目代码中不是只使用其中的一个,而是它们其中几个合起来一起使用。一个例子就是用异步AJAX的方式把值传给服务器,然后服务器以json格式...

ThinkPHP学习笔记(十五)使用Ajax和Jquery来实现页面无刷新

Action

XMPP高级编程---使用Jquery和Javascript学习笔记

XMPP(eXtensiable Messaging and Presence Protocol,可扩展想消息处理和现场协议)是一种用来处理小型结构化数据段的协议。在此基础上可以用来构建 大规模即时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JQuery学习笔记:typeof的使用
举报原因:
原因补充:

(最多只允许输入30个字)