1. javascript中有5中数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String,还有一种复杂数据类型——object,object本质是由一组键值对组成的。

  2. typeof操作符:用于检测给定变量的数据类型,对一个值试用typeof操作符可能返回下列某个字符串: ♦ “undefined”——表示值未定义; ♦ “boolean”——表示值是布尔值 ;♦ “string”——表示值是字符; ♦ “number”——表示值是数值;  ♦ “object”——表示值是对象或null;♦“function”——表示值是函数;

  3. Undefined类型:Undefined类型只有一个值即undefined。对未初始化和未声明的变量执行typeof操作符都会返回undefined,这就说明当我们对一个变量执行typeof操作符时我们不能立即确定这个变量是未初始化还是未声明,因此显示的初始化变量依然是明智的选择,但不应该初始化为undefined。

  4. Null类型:Null类型是第二个只有一个值的数据类型即null。null值表示一个空指针对象,因此typeof操作符检测null值时返回“object”。如果定义的变量将来用于保存对象那么最好将该变量初始化为null而非其他值,这样只要检查null值就可以知道相应的变量是否已经保存了一个对象的引用。

    无论在什么情况下都没有必要把一个变量的值初始化为undefined,但对于意在保存对象的变量则应明确的初始化为null值。这样做不仅体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。

  5. Boolean类型:Boolean类型有两个字面值:true和false。true不一定等于1,false不一定等于0。需要注意的是true和false是区分大小写的,也就是说True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符。在javascript中所有类型的值都有与这两个Boolean值等价的值,要讲一个值转换为布尔值可以调用转型函数Boolean()。

    //这些转换规则对理解流控制语句(如if语句)自动执行响应的Boolean转换很重要
    var message="hello";
    if(message){
    alert("value is true");
    }
  6. 数据类型 转换为true的值 转换为false的值
    Boolean true false
    String 任何非空字符串 “”(空字符串)
    Number 任何非0数字 0和NaN
    Object 任何对象 null
    Undefined 不适用   undefined
  7. Number类型:

    //浮点数值
    var num1=1.1;
    var num2=0.1;
    var num3=.2; //有效,但不推荐

    由于保存浮点数值需要的空间是保存整数值的2倍因此javascript会不失时机 的将浮点数值转换为整数数值。

    var num4=1.; //小数点后没有数字——解析为1
    var num5=10.0;//整数——解析为10

    对于极大或极小的数值可以用e表示法,e表示法表示的数值等于e前面的数值乘以10的指数次幂,大小写e均可。

    var num0=3.125E7;  //3.125*10的7次方,等于31250000
    var num5=3e-7; //3*10的负7次方,0.0000003
    //浮点数值计算会产生舍入误差问题,这是使用基于IEEE754数值的浮点计算的通病,永远不要测试某个特定的浮点数值。
    var a=0.1;
    var b=0.2;
    alert(a+b); //0.30000000000000004,特例

    2.数值范围:javascript能够表示的最小数值保存在Number.MIN_VALUE中,最大值保存在Number.MAX_VALUE中。如果某次计算的结果超出了javascript的数值范围则这个数值将被自动转换成特殊的Infinity值(负数则转换为-Infinity(负无穷),整数则转换为Infinity(正无穷))。正或负的Infinity值无法参与下一次的计算。使用isFinite()函数可以判断数值是否在最小值与最大值之间。

    var result=Number.MAX_VALUE+0.1;
    alert(isFinite(result)); //false,超出了最大值
    console.log(Number.NEGATIVE_INFINITY); //-infinity
    console.log(Number.POSITIVE_INFINITY); //infinity

    3.NaN:即非数值(Not a Number)。任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等。javascript定义了isNaN(),该函数接受一个参数,该参数可以是任何类型,函数在接收到一个参数后会尝试将这个参数转换为数值然后再判断是否不是数值,注意判断结果,不是数值返回true,是数值返回false。

    //对isNaN()函数进行个人习惯封装
    function isNum(number){
    if(!isNaN(number)){
    return true;
    }
    else{
    return false;
    }
    }

    4.数值转换:

    var num1=Number(true); //
    var num2=Number(1.0); //
    var num3=Number(""); //
    var num4;
    Number(num4); //undefined
    var num5=Number(null); //
    var num6=Number("00123abc"); //NaN
    var num7=Number(""); //123,前导0被忽略
    var num1=parseInt("1a2s3f"); //
    var num2=parseInt("fda123"); //NaN
    var num3=parseInt(""); //NaN
    var num4=parseInt("22.5"); //22
    var num5=parseInt(070); //56(八进制数),前导0不会被忽略
    //parseFloat()与parseInt()有2个区别,1.parseFloat()第一个小数点有效;2.parseFloat()始终会忽略前导0。
    var num1=parseFloat("012.32.gsa"); //12.32
  8. String类型:数值、布尔值、对象、字符串值都有toString()方法,但null和undefined值没有。在不知道要转换的值是不是null或undefined的情况下,可以使用转型函数String(),这个函数能将任何类型的值转换为字符串,String()函数遵循下列转换规则:
    /*
    * 如果值有toString()方法,则调用该方法并返回结果
    * 如果值是null,则返回“null”
    * 如果值是undefined,则返回“undefined”
    */
    alert(String(10)); //"10"
    alert(String(true)); //"true"
    alert(String(null)); //"null"
    var test;
    alert(String(test)); //"undefined"
  9. Object类型:在javascript中Object类型是所有其他实例的基础。需要注意的是宿主对象(BOM和DOM对象)可能会也可能不会继承Object。

javascript中6种基本数据类型详解的更多相关文章

  1. JavaScript中的鼠标滚轮事件详解

    JavaScript中的鼠标滚轮事件详解/*Firefox注册事件*/ ~~~Firefox: addEventListener('DOMMouseScroll', handler, false)if ...

  2. javascript中五种基本数据类型

    前言: JavaScript中有五种基本数据类型(也叫做简单数据类型)分别为:undefined.null.bolean.number.string:另外还含有一种复杂的数据类型:object. 深入 ...

  3. JavaScript中typeof和instanceof深入详解

    这次主要说说javascript的类型判断函数typeof和判断构造函数原型instanceof的用法和注意的地方. typeof 先来说说typeof吧.首先需要注意的是,typeof方法返回一个字 ...

  4. Redis实战 | 5种Redis数据类型详解

    我们知道Redis是目前非常主流的KV数据库,它因高性能的读写能力而著称,其实还有另外一个优势,就是Redis提供了更加丰富的数据类型,这使得Redis有着更加广泛的使用场景.那Redis提供给用户的 ...

  5. JavaScript 中 apply 、call 的详解

    apply 和 call 的区别 ECMAScript 规范给所有函数都定义了 call 与 apply 两个方法,它们的应用非常广泛,它们的作用也是一模一样,只是传参的形式有区别而已. 原文作者:林 ...

  6. Javascript中的this关键字用法详解

    在javascript里面,this是一个特殊的对象,它不像其他编程语言那样,是存储在实例中的值,直接指向此实例. 而是作为一个单独的指针,在不同的情况之下,指向不同的位置,这也是为什么我们会将它搞混 ...

  7. JavaScript中事件委托(事件代理)详解

    在JavaScript的事件中,存在事件委托(事件代理),那么什么是事件委托呢? 事件委托在生活中的例子: 有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托 ...

  8. Java中23种经典设计模式详解

    Java中23种设计模式目录1. 设计模式 31.1 创建型模式 41.1.1 工厂方法 41.1.2 抽象工厂 61.1.3 建造者模式 101.1.4 单态模式 131.1.5 原型模式 151. ...

  9. JavaScript中继承的实现方法--详解

    最近看<JavaScript王者归来>中关于实现继承的方法,做了一些小总结: JavaScript中要实现继承,其实就是实现三层含义:1.子类的实例可以共享父类的方法:2.子类可以覆盖父类 ...

随机推荐

  1. Solver Of Caffe

    本文旨在解决如何编写solver文件. Solver的流程: 1.     设计好需要优化的对象,以及用于学习的训练网络和用于评估的测试网络.(通过调用另外一个配置文件prototxt来进行) 2.  ...

  2. java URI

    URI是对URL的抽象,不仅包括统一资源定位符,还包括统一资源名,在java中URI用java.net.URI类表示,这个类与java.net.URL类的区别表现在: URI类完全有关于资源的标识和U ...

  3. 怎么编辑PDF,如何给PDF加水印

    在使用PDF文件的时候,往往会用到PDF编辑器来修改,那么,在使用PDF编辑器修改文件的时候,想要在文件中添加水印,这该怎么操作呢,不会的小伙伴可以看看下面的文章了哦,说不定就会了. 1.打开运行PD ...

  4. django的查看sql语句setting设置

    LOGGING = {     'version': 1,     'disable_existing_loggers': False,     'handlers': {         'cons ...

  5. linux学习笔记之 basename, dirname

    前言: basename: 用于打印目录或者文件的基本名称 dirname: 去除文件名中的非目录部分,仅显示与目录有关的内容.dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部 ...

  6. [转] 一张图理解prototype、proto和constructor的三角关系

    前面的话 javascript里的关系又多又乱.作用域链是一种单向的链式关系,还算简单清晰:this机制的调用关系,稍微有些复杂:而关于原型,则是prototype.proto和constructor ...

  7. VS2013 快捷键 与 RESHARPER 冲突(转)

    1.VS设置工具-->选项-->环境-->键盘-->重置 2.RESHARPER -->Options-->Environment → Keyboard & ...

  8. 异象石(就是sdio宝藏那题)

    题解: 之前这道题写过两次题解了吧.. 实现的时候可以用set<int,cmp>来实现按照dfn排序 代码: 感觉别人的分类讨论比我的简单.. 但我觉得我这个写起来也不烦就不看别人的了.. ...

  9. Atcoder ARC101 Ribbons on Tree

    题解: 前面牛客网的那个比赛也有一道容斥+dp 两道感觉都挺不错的 比较容易想到的是 f[i][j]表示枚举到了i点,子树中有j个未匹配 这样的话我们需要枚举儿子中匹配状态 这样是n^2的(这是个经典 ...

  10. Introduction to boundary integral equations in BEM

    Boundary element method (BEM) is an effective tool compared to finite element method (FEM) for resol ...