js中有5种数据类型:Undefined、Null、Boolean、Number和String。
还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。

一、数据类型

  1、undefinde类型
    Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:
    var i;
    alert(i == undefined);//true
    var i;与var i = undefined;这两句是等价的。
    包含Undefined值的变量和未定义的变量是不一样的。

  2、null类型
    Null类型也只有一个值:null.null表示一个空对象的指针。

  3、boolean类型
    Boolean类型:只有两个字面量true和false。但是js中多有的变量都可以使用Boolean()函数转换成一个Boolean类型的值。

  1. <script type="text/javascript">
  2. var j;
  3. console.log(j+":"+Boolean(j)); //false
  4.  
  5. var j=null;
  6. console.log(j+":"+Boolean(j)); //false
  7.  
  8. j=50;
  9. console.log(j+":"+Boolean(j)); //true
  10.  
  11. j=0;
  12. console.log(j+":"+Boolean(j)); //false
  13.  
  14. j="0";
  15. console.log(j+":"+Boolean(j)); //true
  16.  
  17. j="";
  18. console.log(j+":"+Boolean(j)); //false
  19.  
  20. j="abc";
  21. console.log(j+":"+Boolean(j)); //true
  22.  
  23. console.log("----------------------");
  24. console.log("null=='':"+(null=='')); //false
  25. console.log("null=='null':"+(null=='null')); //false
  26. console.log("null==undefined:"+(null==undefined)); //true
  27.  
  28. alert(123==123);
  29. alert(0==true); //false
  30. alert(true=="true"); //false
  31. alert(false==0); //true
  32. alert(1+1==2); //true
  33. alert(0===true); //false
  34. alert(false===0); //false
  35. </script>

  4、Number类型

    整数和浮点数。NaN:Not a Number(不是数字类型的数字类型)。这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错。例如:1/0 返回的就是NaN。

    NaN的特点:

    1、任何涉及NaN的操作都会返回NaN。

    2、NaN对任何值都不相等,包括自己NaN本身。
    针对NaN特性,JS内置了isNaN()函数,来判断一个变量是不是一个数字。如果是数字,返回false,不全是数字,返回true
  5、String类型

    凡是用双引号或是单引号引起来的,都属于string类型

  1. <script type="text/javascript">
  2. var i;
  3. console.log(i+":"+String(i)); //undefined
  4. i=null;
  5. console.log(i+":"+String(i)); //null
  6. i=123;
  7. console.log(i+":"+String(i)); //123
  8. i=true;
  9. console.log(i+":"+String(i)); //true
  10. </script>

二、typeof操作符

    对一个变量进行推断变量的类型,可能返回以下字符串:
    "undefined" 如果这个值,未定义或者为初始化
    "boolean" 布尔值
    "string" 字符串
    "number" 数值
    "object" 对象
    "function" 函数
    用法:typeof 95; 或者 typeof(95); 会返回"number".

    

  1. <script>
  2. var b=function str(){
  3. var a=100;
  4. alert(a);
  5. };
  6. console.log(b+":"+typeof(b));
  7. var i=100;
  8. console.log(i+":"+typeof(i));
  9. i=1.2;
  10. console.log(i+":"+typeof(i));
  11. i=1.2345678;
  12. console.log(i+":"+typeof(i));
  13. i=-1.23;
  14. console.log(i+":"+typeof(i));
  15. i=1.2e8;
  16. console.log(i+":"+typeof(i));
  17. i=034;
  18. console.log(i+":"+typeof(i));
  19. i=0x12c;
  20. console.log(i+":"+typeof(i));
  21. i="123";
  22. console.log(i+":"+typeof(i));
  23. i=true;
  24. console.log(i+":"+typeof(i));
  25. i=false;
  26. console.log(i+":"+typeof(i));
  27. var j;
  28. console.log(j+":"+typeof(j));
  29. i=null;
  30. console.log(i+":"+typeof(i));
  31. var str="123abc";
  32. alert(typeof(str++));
  33. alert(str);
  34. </script>

三、数据类型的转换:

  1、强制数据类型的转换 : 你知道变量将会转换成什么数据类型

    强制数据类型转换
            1、Number():强制的把变量准换为数字类型
                NaN:不是数字类型的数字类型  not a number
            2、parseInt():强制的把变量准换为数字类型,而且会转换为整数
            parseFloat():强制的把变量准换为数字类型,而且会转换为float单精度浮点型

  1. <script type="text/javascript">
  2. //alert(typeof(NaN));
  3. var a;
  4. console.log(a+":"+Number(a));
  5. a=null;
  6. console.log(a+":"+Number(a));
  7. a="100";
  8. //alert("100"+100);
  9. console.log(a+":"+(Number(a)+100));
  10. a="-100";
  11. console.log(a+":"+(Number(a)+100));
  12. a="";
  13. console.log(a+":"+(Number(a)+100));
  14. a=true;
  15. console.log(a+":"+Number(a));
  16. a=false;
  17. console.log(a+":"+Number(a));
  18. a="123abc";
  19. console.log(a+":"+Number(a));
  20. var i="123";
  21. console.log(i+":"+parseInt(i));
  22. var i="123.456";
  23. console.log(i+":"+parseInt(i));
  24. var i="123.abc";
  25. console.log(i+":"+parseInt(i)); //Nan
  26. var i="a123bc";
  27. console.log(i+":"+parseInt(i));
  28. var i="12a3bc";
  29. console.log(i+":"+parseInt(i));
  30. var i=0x10a;
  31. console.log(i+":"+parseInt(i));
  32. //强制将十六进制转换为十进制
  33. var i=123.0;
  34. console.log(i+":"+parseFloat(i));
  35. </script>

  2、隐式数据类型的转换 : 你不知道变量将会转换成什么数据类型,但是数据确实转换了

    隐式数据类型的转换 :
         变成字符串:+
           变成数字:- * / %
           变成数字:++ --
           数字的比较、字符串的比较:> <
           把右边的数据类型转换为布尔型:!

  1. <script type="text/javascript">
  2. var i="100";
  3. console.log(i+100);
  4. console.log(100-"3");
  5. console.log(100*3);
  6. console.log(100/3);
  7. var i="3";
  8. i++;
  9. console.log(i); //自加和自减都会自动转换为number
  10. //alert("3">2); //true
  11. //alert("3">"2"); //true
  12. if(Boolean(2)){
  13. alert("aaaa");
  14. }
  15. </script>

js-数据类型的更多相关文章

  1. 由js apply与call方法想到的js数据类型(原始类型和引用类型)

    原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...

  2. 总结的JS数据类型判定(非常全面)

    用typeof 来检测数据类型 Javascript自带两套类型:基本数据类型(undefined,string,null,boolean,function,object)和对象类型. 但是如果尝试用 ...

  3. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  4. JS数据类型的理解(猜测)

    Js 数据类型 对于这个主题,首先来看几个问题,如果你对这几个问题很清楚的话,那就请直接跳过吧,不用接着往下看了,如果不清楚,建议你还是看看. 1)如果判断函数?function 和object的联系 ...

  5. web开发与设计--js数据类型,js运营商

    1. js数据类型划分:号码值类型,布尔,串 由typeof能够看到什么类型的数据被详述. 举例: <span style="font-family:Microsoft YaHei;f ...

  6. [妙味JS基础]第四课:JS数据类型、类型转换

    知识点总结 JS数据类型:number数字(NaN).string字符串.boolean布尔值.函数类型.object对象(obj.[].{}.null).undefined未定义 typeof 用来 ...

  7. JavaScript大厦之地基:js数据类型

    一.数据和类型        俗话说物以类聚,人以群分:这里将人和物都按类别进行了区分.我们数据也一样,使用计算机我们能处理数值,也可以处理文本还可以处理图形.音频.视频等各种各样的数据,不同的数据有 ...

  8. JS 数据类型、赋值、深拷贝和浅拷贝

    js 数据类型 六种 基本数据类型: Boolean. 布尔值,true 和 false. null. 一个表明 null 值的特殊关键字. JavaScript 是大小写敏感的,因此 null 与 ...

  9. 1. js数据类型_对象_函数_内存

    1. js数据类型有哪些? 基本(值)类型 Number ---- 任意数值 String ---- 任意字符串 Boolean ---- true/false undefined ---- unde ...

  10. js数据类型隐式转换问题

    js数据类型隐式转换 ![] == false //true 空数组和基本类型转换,会先[].toString() 再继续比较 ![] == [] //true ![] //false [] == [ ...

随机推荐

  1. Android开源源码推荐(一)

    1.Android-ViewPagerIndicator http://www.akaifa.com/code/86/android-viewpagerindicator 实现各种样式的滑动视图(Sc ...

  2. SMON功能(二):合并空闲区间

    SMON的作用还包括合并空闲区间(coalesces free extent) 触发场景 早期Oracle采用DMT字典管理表空间,不同于今时今日的LMT本地管理方式,DMT下通过对FET$和UET$ ...

  3. MySQL存储引擎选型

    一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...

  4. 设置360调用样式 IE调用样式

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  5. centos7 Linux 尝试使用crontab

    一.安装crontab [root@CentOS ~]# yum install vixie-cron[root@CentOS ~]# yum install crontabs 说明:vixie-cr ...

  6. BCB6 重装后的项目编译莫名问题

    我很少用 bcb ,重装 bcb6 后原来的项目居然不能编译成功了,看了一下是控件的问题,但很多控件实际上并不关联的,而 bcb 坚持要你"拥有"当时的控件环境,折腾很久实在是没发 ...

  7. C# 用代码创建 DataSet 和 DataTable 的列和记录

    System.Data.DataSet objSet = new DataSet(); System.Data.DataTable objTable = new DataTable("tes ...

  8. java ConcurrentModificationException探究

    当集合结构被修改,会抛出Concurrent Modification Exception. fail-fast会在以下两种情况下抛出ConcurrentModificationException ( ...

  9. Spring MVC 事务配置

    Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 一.      XML,使用tx标签配置拦截器实现事务 一.   ...

  10. wav 转换到 flac

    参考自:http://so.trust.blog.163.com/blog/static/17188620020127197618621/ wav  无损无压缩: flac无损压缩 将 wav 转换到 ...