[TOC] >[info]数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。 变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。 js数据类型有(字符串、数字、布尔、数组、对象、Null、Undefined)。 ## JavaScript 拥有动态类型 >[success]JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:(弱类型,松散型)。 ~~~ var x // x 为 undefined var x = 6; // x 为数字 var x = "Bill"; // x 为字符串 ~~~ ### JavaScript 字符串 >[success]字符串是存储字符(比如 "Bill Gates")的变量。 **单双引号的用法** 1. 效率差不多。 2. 只能成对出现,不能相互交叉使用。 3. 可以相互嵌套。 ~~~ var carname="Bill Gates"; var carname='Bill Gates'; ~~~ ### JavaScript 数字 >[success]JavaScript 只有一种数字类型。数字可以带小数点,也可以不带。 ~~~ var x1=34.00; //使用小数点来写 var x2=34; //不使用小数点来写 ~~~ ### JavaScript 布尔 >[success]布尔(逻辑)只能有两个值:true 或 false。 ~~~ var x=true; var y=false; ~~~ ### JavaScript 数组(后面重点讲) >[success]存储一系列相关数据的容器,一种特殊的数据类型,下面的代码创建名为 cars 的数组: ~~~ var cars=new Array(); cars[0]="Audi"; cars[1]="BMW"; cars[2]="Volvo"; ~~~ ### JavaScript 对象(后面重点讲) >[success]json对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔: ~~~ var person={firstname:"Bill", lastname:"Gates", id:5566}; ~~~ ### Undefined 和 Null >[success]Undefined 这个值表示变量不含有值。 可以通过将变量的值设置为 null 来清空变量。 ~~~ cars=null; person=null; ~~~ ## 类型相关常用函数 ### typeof 运算符 >[success]typeof 运算符有一个参数,即要检查的变量或值。例如: ~~~ var sTemp = "test string"; alert (typeof sTemp); //输出 "string" alert (typeof 86); //输出 "number" ~~~ >[success]对变量或值调用 typeof 运算符将返回下列值之一: * undefined - 如果变量是 Undefined 类型的 * boolean - 如果变量是 Boolean 类型的 * number - 如果变量是 Number 类型的 * string - 如果变量是 String 类型的 * object - 如果变量是一种引用类型或 Null 类型的 ### Number() 函数 >[success]Number() 函数把对象的值转换为数字。 ~~~ alert(Number("888")); ~~~ **注意事项:** 1. 如果是布尔值,false为0,true为1 2. 如果是数字,转换成为本身。将无意义的后导0去掉。 3. 如果是undefined 转换为NaN not a number 4. 如果是字符串 * 如果字符串当中只有数字,转换为10进制(忽略前导0和后导0) * 如果是有效的规范的浮点型,转换为浮点值(忽略前导0和后导0) * 如果是空字符串,则转换为0 * 如果是其他的值,返回NaN ### parseInt() 函数 >[success]parseInt() 函数可解析一个字符串,并返回一个整数。 ~~~ parseInt("10"); //返回 10 parseInt("19px"); //返回 19 ~~~ 1. 如果一个字符串只包含数字,则以10进制的方式转换为整型。 2. 他会自动忽略字符串前面的空格,直到找到第一个非空的数值字符串,如果字符串的第一个字符不是空格、数字、-,那么返 回NaN。 ### eval() 函数 >[success]函数可计算某个字符串,并执行其中的的 JavaScript 代码。 ~~~ var str = '1+2'; alert(eval(sta)); ~~~ >[danger]**作业:**理解类型的作用和如果判断数据类型。