JS学习基本概念01之数据类型总结

2017-06-01  本文已影响12人  胡不归vac

5种简单数据类型: Undefined, Null, Boolean, Number, String
1种复杂数据类型: Object

Undefined

Undefined类型只有一个取值:undefined.

Null

Null类型只有一个取值:null,表示的意思是空对象指针,可以理解为以后要指向一个对象,但还未确定指向谁.

Boolean

Boolean类型有两个取值: true and false.

各种数据类型转化为Boolean类型的结果

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 空字符串
Number 任何非零数值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined 没有 undefined

Number

数值范围

NaN

数值转换

主要有三个,Number(), parseInt(), parseFloat().Number()可以把任何类型的数据转换为数值,后两个专门用于转换字符串.

Number()
  1. Boolean类型,true转换为1, false转换为0
  2. null转换为0
  3. undefined转换为NaN
  4. String类型,按如下规则
    • 空字符串 ----> 0
    • 只包含数字,则忽略前导0,转换为十进制数
    • 包含有效的浮点数格式,以数字开头,则忽略前导0,转换为相应的浮点数
    • 包含有效的十六进制格式,以“0x”开头,转换为相应的十进制数
    • 其他的均为 NaN

总的来说,就是能转换为数值,就转换为数值。

  1. 如果是对象,先调用对象的valueOf(),如果是NaN,则调用toString(),再转换

注意:一元加操作符的操作与Number()函数相同.

parseInt()

parseInt()相对来说比较简单,将一个字符串转换为整数,原则如下:从前往后搜索,第一个不是数字字符或者负号,直接转换为NaN。只要找到数字字符,继续解析直到遇到非数字字符。将此间遇到的数字转换为数值。前导0会被忽略,所以无法解析八进制数,但可以识别十六进制的数值.
parseInt()还可以接收第二个参数,来指定转换的进制.

var num = parseInt("0xAF",16);       // 175
var num2 = parseInt("AF",16);       // 175
parseFloat()

parseInt()类似,但是解析的第一个字符可以是小数点.整个字符串中,第一个小数点是有效的,第二个无效.parseFloat()始终会忽略前导0.

String

  1. 额外注意的是,字符串包含一些转义字符,如\b \t \xnn \unnnn
  2. 字符串一旦创建是不可变的,即使另外赋值,也是销毁原来的字符串,然后以新的字符串填充该变量

转换为字符串

除了Undefined和Null类型,其他类型的数据均含有toString()方法.字符串类型的变量会返回一个副本.

var num = 10;
alert(num.toString(2));     // "1010"

Object

对象就是一组数据与功能的集合.创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象。
var o = new Object();
每个Object对象的实例都有以下方法和属性

  1. constructor: 保存着创建当前对象的函数,如Object()
  2. hasOwnProperty(propertyName): 检查给定属性是否存在于当前实例而非原型中
  3. isPrototypeOf(object): 检查传入的对象是否是当前对象的原型
  4. propertyIsEnumerable(propertyName): 检查给定属性是否可以用for-in来枚举
  5. toLocaleString(): 返回对象的基于地区的字符串
  6. toString():
  7. valueOf(): 返回对象的字符串、数值或者布尔值表示,通常与toString()返回的相同

操作符与函数总结

  1. typeof
    返回给定数据的数据类型

注意:对未定义的数据使用typeof,会返回"undefined"

  1. isFinite()
    判断一个数值是否处于数值的最大值和最小值之间
var result = Number.MAX_VALUE + Number.MAX_VALUE;
alert(isFinite(result));        // false
  1. isNaN()
    判断一个数据是否是数值或者可以转换为数值
  2. parseInt()&parseFloat&Number()
上一篇 下一篇

猜你喜欢

热点阅读