前面写过一篇js中变量定义的问题:Js中判断变量存不存在的问题

本文再补充下,变量声明未初始化的情况,代码:

<script>
var a;
alert(a==undefined)//true
</script>

  

我们看到,声明变量初始化时,默认给了变量一个值,和undefined可以"=="。这个是一种表示"无"的值,还有1个是null。Java中只有null而无undefined.

上面的例子已经知道,变量声明未初始化"=="undefined,那如果是”全等“的情况呢?

<script>
var a;
alert(a===undefined)//true
</script>

  

运行上面的代码,会弹出true.这里我们知道了未初始化的变量与undefined是“全等“的。这说明, 声明变量初始化时,默认给了变量一个值,就是这个特殊的undefined。

对undefined操作会报错:比如对其用match()方法,报错如下”Uncaught TypeError: Cannot read property 'match' of undefined”。后面的代码将不会执行!

但是,笔者认为,判断一个变量是否为undefined,最好用typeof这个1元运算符。例子如下:

<script>
var a;
alert(typeof(a)=="undefined");//true
</script>

  

Jquery获取指定元素的属性(attr)时,如果这个元素没有这个属性,会出现什么效果呢?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<li class="perlink">
1111111111111
</li>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(".perlink").click(function(){
alert(typeof($(this).attr("hf"))==="undefined");//true
})
</script>
</body>
</html>

  

上面代码弹出,是不是跟未声明的变量弹出的很像?事实上,弹出的这个值就是undefined。”全等”运算也是true。那么,就可以这样判断一个页面元素是否用某事属性了,代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<li class="perlink">
1111111111111
</li>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
if(typeof($(".perlink").attr("hf"))!="undefined"){
alert("不空的时候做的事情")
}else{
alert("不做任何事情")
}
</script>
</body>
</html>

  

最新文章

  1. javascript网址收集
  2. String easy 结束日
  3. EC笔记,第一部分:1.视C++为一个语言联邦
  4. 比较详细PHP生成静态页面教程
  5. Android权限设置android.permission
  6. 开源项目:X265
  7. LIVE555研究之三:LIVE555基础
  8. 根据Email地址跳转到相应的邮箱登录页面 (转)
  9. node插件http-proxy实现反向代理
  10. Win8打开chm右侧空白解决方法
  11. 记录一下通过分析Tomcat内部jar包找出request.getReader()所用的字符编码在哪里设置和起效的完整分析流程
  12. UNIX网络编程——套接字选项(心跳检测、绑定地址复用)
  13. C#控件绘图恢复最小化后不自动重绘问题
  14. MySql查看与修改auto_increment方法(转)
  15. SEVERE: An incompatible version 1.1.27 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.32
  16. 阿里巴巴Java编码规范,来测测你能得多少分
  17. 跨站脚本攻击(xss)理解
  18. 新特性:postgresql的vacuum漫谈
  19. &lt;eq&gt;标签
  20. Cheatsheet: 2017 07.01 ~ 07.31

热门文章

  1. noip模拟赛 赤の夜
  2. Grails用CONSOLE测试,比写集成测试还快
  3. 洛谷 P2548 [AHOI2004]智能探险车
  4. SSH整合开发时Scope为默认时现象与原理
  5. Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录
  6. Buy or Build (poj 2784 最小生成树)
  7. c++ 基于Policy 的 模板编程
  8. 线段树 hdu3255 Farming
  9. Java图形用户界面编程
  10. CentOS7 网卡名称重命名为eth*