数据类型

  JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。

 typeof操作符

  介于JavaScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof就是负责提供者方面信息的操作符。对一个值使用typeof操作符可能返回下列某个字符串:

  ● "undefined"——如果这个值未定义;

  ● "boolean"——如果这个值是布尔值;

  ● "string"——如果这个值是字符串;

  ● "number"——如果这个值是数值;

  ● "object"——如果这个值是对象或null;

  ● "function"——如果这个值是函数;

  Undefined类型

  Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:

    var message;
alert(message == undefined) //true

  Null类型

  Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null时会返回"object"的原因,例如:

    var car = null;
alert(typeof car); // "object"

  如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检测null值就可以知道相应的变量是否已经保存了一个对象的引用了,例如:

    if(car != null)
{
//对car对象执行某些操作
}

  实际上,undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true。

  alert(undefined == null); //true

  尽管null和undefined有这样的关系,但它们的用途完全不同。无论在什么情况下都没有必要把一个变量的值显式地设置为undefined,可是同样的规则对null却不适用。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。

  Boolean类型

  该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。

  虽然Boolean类型的字面值只有两个,但JavaScript中所有类型的值都有与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用类型转换函数Boolean(),例如:

    var message = 'Hello World';
var messageAsBoolean = Boolean(message);

  在这个例子中,字符串message被转换成了一个Boolean值,该值被保存在messageAsBoolean变量中。可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。至于返回的这个值是true还是false,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对象的转换规则。

aaarticlea/png;base64,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" alt="" />  这些转换规则对理解流控制语句(如if语句)自动执行相应的Boolean转换非常重要,例如:

    var message = 'Hello World';
if(message)
{
alert("Value is true");
}

  运行这个示例,就会显示一个警告框,因为字符串message被自动转换成了对应的Boolean值(true)。由于存在这种自动执行的Boolean转换,因此确切地知道在流控制语句中使用的是什么变量至关重要。

  Number类型

  这种类型用来表示整数和浮点数值,还有一种特殊的数值,即NaN(非数值 Not a Number)。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在JavaScript中,任何数值除以0会返回NaN,因此不会影响其他代码的执行。

  NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。例如,下面的代码会返回false。

alert(NaN == NaN);    //false

  JavaScript中有一个isNaN()函数,这个函数接受一个参数,该参数可以使任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串”10“或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。例如:

    alert(isNaN(NaN));    //true
alert(isNaN(10)); //false(10是一个数值)
alert(isNaN("10")); //false(可能被转换为数值10)
alert(isNaN("blue")); //true(不能被转换为数值)
alert(isNaN(true)); //false(可能被转换为数值1)

  有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会返回不同的结果。

  Number()函数的转换规则如下:

  ● 如果是Boolean值,true和false将分别被替换为1和0

  ● 如果是数字值,只是简单的传入和返回

  ● 如果是null值,返回0

  ● 如果是undefined,返回NaN

  ● 如果是字符串,遵循下列规则:

   ○ 如果字符串中只包含数字,则将其转换为十进制数值,即”1“会变成1,”123“会变成123,而”011“会变成11(前导的0被忽略)

   ○ 如果字符串中包含有效的浮点格式,如”1.1“,则将其转换为对应的浮点数(同样,也会忽略前导0)

   ○ 如果字符串中包含有效的十六进制格式,例如”0xf“,则将其转换为相同大小的十进制整数值

   ○ 如果字符串是空的,则将其转换为0

   ○ 如果字符串中包含除了上述格式之外的字符,则将其转换为NaN

  ● 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依次按照前面的规则转换返回的字符串值。

    var num1 = Number("Hello World");    //NaN
var num2 = Number(""); //0
var num3 = Number("000011"); //11
var num4 = Number(true); //1

  由于Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是parseInt()函数。parseInt()函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到第一个非空格字符。如果第一个字符串不是数字字符或者负号,parseInt()会返回NaN;也就是说,用parseInt()转换空字符串会返回NaN。如果第一个字符是数字字符,praseInt()会继续解析第二个字符,知道解析完所有后续字符或者遇到了一个非数字字符。例如,"1234blue"会被转换为1234,”22.5“会被转换为22,因为小数点并不是有效的数字字符。

  如果字符串中的第一个字符是数字字符,parseInt()也能够识别出各种整数格式(即十进制、八进制、十六进制)。为了更好的理解parseInt()函数的转换规则,下面给出一些例子

    var num1 = parseInt("1234blue");    //1234
var num2 = parseInt(""); //NaN
var num3 = parseInt("0xA"); //10(十六进制)
var num4 = parseInt("22.5"); //22
var num5 = parseInt("070"); //56(八进制)
var num6 = parseInt("70"); //70 var num7 = parseInt("10",2); //2(按二进制解析)
var num8 = parseInt("10",8); //8(按八进制解析)
var num9 = parseInt("10",10); //10(按十进制解析)
var num10 = parseInt("10",16); //16(按十六进制解析)
var num11 = parseInt("AF"); //56(八进制)
var num12 = parseInt("AF",16); //175

  与parseInt()函数类似,parseFloat()也是从第一个字符(位置0)开始解析每个字符。而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。也就是说,字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。例如,”22.34.5“将会被转换成22.34。

  parseFloat()和parseInt()的第二个区别在于它始终都会忽略前导的零。由于parseFloat()值解析十进制值,因此它没有用第二个参数指定基数的用法。

    var num1 = parseFloat("1234blue");    //1234
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5

  String类型

  String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由单引号(')或双引号(")表示。

    var str1 = "Hello";
var str2 = 'Hello';

  任何字符串的长度都可以通过访问其length属性取得

  alert(str1.length);        //输出5

  要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方法。

    var age = 11;
var ageAsString = age.toString(); //字符串"11"
var found = true;
var foundAsString = found.toString(); //字符串"true"

  数值、布尔值、对象和字符串值都有toString()方法。但null和undefined值没有这个方法。

  多数情况下,调用toString()方法不必传递参数。但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。

    var num = 10;
alert(num.toString()); //"10"
alert(num.toString(2)); //"1010"
alert(num.toString(8)); //"12"
alert(num.toString(10)); //"10"
alert(num.toString(16)); //"a"

  通过这个例子可以看出,通过指定基数,toString()方法会改变输出的值。而数值10根据基数的不同,可以在输出时被转换为不同的数值格式。

  在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:

  ● 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果

  ● 如果值是null,则返回"null"

  ● 如果值是undefined,则返回”undefined“

    var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); //"10"
alert(String(value2)); //"true"
alert(String(value3)); //"null"
alert(String(value4)); //"undefined"

  Object类型

  对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象。

  var o = new Object();

  Object的每个实例都具有下列属性和方法:

  ● constructor——保存着用于创建当前对象的函数

  ● hasOwnProperty(propertyName)——用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty("name"))

  ● isPrototypeOf(object)——用于检查传入的对象是否是另一个对象的原型

  ● propertyIsEnumerable(propertyName)——用于检查给定的属性是否能够使用for-in语句来枚举

  ● toString()——返回对象的字符串表示

  ● valueOf()——返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。

来源:

http://www.cnblogs.com/java-my-life/archive/2012/08/06/2625065.html

[转]JavaScript之数据类型的更多相关文章

  1. JS-安全检测JavaScript基本数据类型和内置对象的方法

    前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议 ...

  2. JavaScript基础——数据类型

    JavaScript使用数据类型来确定如何处理被分配给一个变量的数据.变量的类型决定了你可以对变量进行什么操作,如循环或者执行.下面描述了最常用的变量类型. 字符串(String):此数据类型将字符数 ...

  3. JavaScript 的数据类型 相关知识点

    (1)基本数据类型介绍 JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type) 或者说是:可以拥有方法的类型和不能拥有方法的类型 或者说是 ...

  4. JavaScript的数据类型

    JavaScript的数据类型 1.JavaScript的数据类型包括:字符串.数值.布尔.数组.对象.Null.Undefined. 2.JavaScript拥有动态类型,这以为着同一个变量可用作不 ...

  5. JavaScript判断数据类型总结

    最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断网页特效,在此做一个总结吧! 一.JS中的数据类型  1.数值型(Number):包 ...

  6. JavaScript 学习之第一篇JavaScript的数据类型(2016/8/29 晚 23:12)

    1. JavaScript的数据类型 JavaScript 里面有6中数据类型 Boolean String Number Undefined Null Object object(对象)类型包含了数 ...

  7. 从头开始学JavaScript (三)——数据类型

    原文:从头开始学JavaScript (三)--数据类型 一.分类 基本数据类型:undefined.null.string.Boolean.number 复杂数据类型:object object的属 ...

  8. JavaScript基本数据类型

    JavaScript基本数据类型 在JavaScript种一共有6种数据类型:Null.Undefined.Boolean.String.Number.Object.其中Object是一种复杂数据类型 ...

  9. javaScript(4)---数据类型

    javaScript(4)---数据类型 第4章 数据类型 学习要点: 1.typeof操作符 2.Undefined类型 3.Null类型 4.Boolean类型 5.Number类型 6.Stri ...

  10. 1:Javascript的数据类型和相互转换

    第一节:JavaScript的数据类型 他是弱类型 var 但是正是由于其实弱类 所以其后台的数据类型转换也是我们值得思考的 JavaScript的数据类型有两种 一种是原始类型  另外一种是对象类型 ...

随机推荐

  1. 20145239杜文超《网络攻防》- MSF基础应用

    20145239杜文超<网络攻防>- MSF基础应用 基础问题回答 1.用自己的话解释什么是exploit,payload,encode? exploit:实现攻击行为的主体,但没有载荷只 ...

  2. 描述一下你最常用的编程风格---JAVA

    描述一下你最常用的编程风格---JAVA     描述一下你最常用的编程风格---JAVA   (1)类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都 ...

  3. 如何在java中导入jar包

    通常在lib文件夹中存放从外部引入的jar包 所以在项目上右击,new 一个folder,命名为lib 然后把JAR文件复制进去. 然后再在项目上右击,build Path ——configure b ...

  4. volist/foreach下,点击循环中的一个进行操作

    第一种方法,是给点击元素绑定事件,用ajax将值传到控制器中,其中传的值,用jquery选择器选择值. 1.在html中 <foreach name="save" item= ...

  5. Ngnix学习笔记

    一.Ngnix介绍 1.概念 一个强大的Web服务器软件. 2.功能 1)处理高并发的http请求. 2)作为反向代理服务器来进行负载均衡. 3)数据压缩和解压缩处理 3.优势 高性能,轻量级,内存消 ...

  6. Enum Binding ItemsSource In WPF

    Enum Binding ItemsSource In WPF   在WPF中枚举绑定到ItemsSource. 一.通过ObjectDataProvider 获取Enum数据源 首先我们定义一个En ...

  7. PowerDesigner 学习

    1. 创建主键,不能为空,递增列,唯一约束(key 通过唯一索引) 数据库-->根据数据库的改动更新model  或者 根据修改后的model (比如新添加的字段)产生新sql代码 2.powe ...

  8. Node.js核心模块_全局变量、util学习

    全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...

  9. IIS 高并发的相关配置

    前言: 随着业务量的增加,服务器流量的增长增长了好多,高峰期会出现 503 的错误,IIS 对请求数的配置默认是 1000,无法满足现状的需求: 需要收集性能数据如下: 1.Windows性能监视器, ...

  10. Git_学习_01_ git 安装与配置

    参考:windows下Git BASH安装 二.参考资料 1. windows下Git BASH安装