zoukankan      html  css  js  c++  java
  • 重温javascript数据类型

    在javaScript中,有五种简单的数据类型,分别是

    • Undefined
    • Null
    • Boolean
    • Number
    • String

    还有一种复杂的数据类型object,object本质是有一组无序的名值对组成的。

    typeof

    由于ECMAScript是松散类型的,所以提供一种手段来检测数据类型--typoof。

    Undefined

    在一个变量被声明还未被赋值的时候,你检测它的类型,会是undefined;或者你拿它和undefined直接做比较,它也会返回ture

    var massage;
    console.log(typeof(massage))//undefined
    console.log(massage==undefined)//ture
    

    这一点很重要,因为在后面我们会了解到作用域和变量提升的知识,然后会告诉你定义一个变量最先会被解释为“undefined”,其原理就是undefined的最初定义,请参看《javascript高级程序设计》p24.

    说到这里,我想起了以前我做一个项目的时候因为undefined踩的坑。

    var str1;
    str1+='<li><a href="'
    	  +list[i].StuLink+
          '"><div class="ranking mt5 mr5 white HihgLight">'                 
          +a+
          '</div>'
          +list[i].StuName+
          '</a></li>';
    

    这是我当时需要把数据拼接起来,可是每次的第一条数据都是返回undefined,当时找了好久都不知道为什么。结果原来是要给str1先赋一个值,比如

    var str1='';
    

    这样浏览器就不会把它解析为undefined了。

    然后注意一个细节的点

    在一个变量未被声明的时候,会产生错误,但typeof会返回undefined

    var massage;
    var age
    console.log(massage);//undefined
    console.log(age);//产生错误
    console.log(typeof(massage));//undefined
    console.log(typeof(age))//undefined
    

    所以一定要注意记得初始化变量,不然你typoof不能判断变量是否已经初始化。

    undefined==null的问题

    null类型也只有一个值,即null。undefined实际上是从null派生而来的,因此ECMAScript把他们定义为相等的。

    alert(null == undefined); //output "true" 
    alert(null === undefined); //output "false"严格比较符不发生转化 
    

    尽管两个值相等,但是他们的含义却不一样,undefined是声明了变量但为对其初始化时赋予该变量的值,null则用于表示尚未存在的对象。如果函数要返回的是对象,那么找不到该对象时,返回的通常是null。

  • 相关阅读:
    struts2在result中使用el表达式碰到的问题
    JSP学习笔记—— jsp中include文件指令乱码的三种解决方案
    SSH整合,applicationContext.xml中配置hibernate映射文件问题
    struts上传文件失败 ContentType not allowed错误解决方法【转】
    mysql5 乱码问题解决方案
    java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决
    JQuery使用on绑定动态生成元素时碰到的问题
    Oracle异常处理
    C#窗口拦截键盘事件
    Oracle中动态SQL详解
  • 原文地址:https://www.cnblogs.com/huyuzhu/p/7594152.html
Copyright © 2011-2022 走看看