JavaScript基本概念(二)

来源:互联网 发布:linux教程有什么 编辑:程序博客网 时间:2024/06/05 15:42

四、数据类型

  • 5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String。
  • 1种复杂数据类型:Object(本质上是由一组无序的名值对组成的)。

1、typeof操作符

检测给定变量的基本数据类型。

返回值如下:

  • “Undefined”——未定义
  • “boolean”——布尔值
  • “string”——字符串
  • “number”——数值
  • “object”——对象或null
  • “function”——函数

【注】
typeof主要用于检测变量的基本数据类型,但在检测引用类型的值时,使用instanceof操作符。

result = variable instanceof constructor

所有引用类型的值都是Object的实例。所以,在检测一个引用类型值和Object构造函数时,instanceof操作符始终会返回true,但是,如果使用instanceof操作符检测基本类型的值时,会始终返回false,因为基本类型不是对象。

2、Undefined类型

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

【注】包含undefined值的变量与尚未定义的变量是不一样的。对于尚未声明的变量,只能执行一项操作,即使用typeof操作符检测其数据类型。

var message;  //这个变量声明之后未对其初始化,默认得到了undefined值var age  //这个变量没有声明alert(message);  //"undefined"alert(age);  //产生错误

3、Null类型

  • 只有一个值,即null。
  • 从逻辑角度来看,null值表示一个空对象指针。所以在调用typeof null时会返回”object”
  • 实际上,undefined值是派生自null值的。ECMA-262规定对它们的相等性测试要返回true。
alert(null == undefined);  // true

4、Boolean类型

两个字面值:true和false。

5、Number类型

1 )数值字面量有十进制、八进制、十六进制。其中,八进制字面量在严格模式下无效。十六进制字面量的前两位必须是0x。

2)JavaScript不区分整数值和浮点数值。所有数字均用浮点数值表示。
最小数值保存在Number.MIN_VALUE中,最大数值保存在Number.MAX_VALUE中。

3)NaN:非数值(Not a Number)

  • 用于表示一个本来要返回数值的操作数未返回数值的情况。
  • 任何涉及NaN的操作都会返回NaN。
  • NaN与任何值都不相等,包括NaN本身。
  • 使用isNaN()判断一个参数是否“不是数值”。

4)Infinity:正无穷大。

  • Infinity不是能参与计算的数值。
  • 可以使用isFinite()函数判断一个数值是不是无穷的。

5)把非数值转换为数值的3个函数:

  • Number():可以用于任何数据类型。
输入 返回值 Boolean true为1,false为0 数字值 简单的传入和返回 null 0 undefined NaN 字符串中只含数字 十进制数值 字符串中包含有效的浮点格式 对应的浮点数值 字符串中包含十六进制格式 相同大小的十进制整数 空的字符串 0 字符串中包含除上述格式之外的字符 NaN
  • parseInt():把字符串转换成数值,常用于处理整数。

    • 会忽略字符串前面的空格,直至找到第一个非空格字符。
    • 如果第一个字符不是数字字符或者负号,返回NaN。
    • 如果第一个字符是数字字符,则会一直解析完所有后续字符或遇到的第一个非数字字符。
    • 传入第二个参数,即转换时使用的基数(多少进制),可以明确以什么形式解析。
  • parseFloat():把字符串转换成数值。与parseInt()类似,不过是用于处理浮点数字。

6、String类型

1)用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。

2)字符串可以由双引号或单引号表示。

3)字符字面量,即转义序列,用于表示非打印字符,或者具有其他用途的字符。

字面量 含义 \n 换行 \t 制表 \b 退格 \r 回车 \f 进纸(换页) \ 斜杠 \’ 单引号,在单引号表示的字符串中使用。 \” 双引号,在双引号表示的字符串中使用。 \xnn 以十六进制代码nn表示的一个字符 \unnnn 以十六进制代码nnnn表示的一个Unicode字符

4)字符串不可变,换句话说,字符串一旦创建,它的值就不能改变。

5)转换为字符串的方式:

  • toString()方法:只适用于数值、布尔值、对象和字符串值,而null和undefined值没有这个方法。
    • 默认以十进制格式返回数值的字符串表示。
    • 传递基数可以输出二进制、八进制、十六进制。
  • 使用转型函数String():适用于所有类型。
值的类型 String()返回值 有toString()方法的值 调用该方法(没有参数)并返回相应的结果 null null undefined undefined

7、object类型

1)对象是一组数据和功能的集合。

2)对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
创建的Object类型的实例并为其添加属性和(或)方法,可以创建自定义对象。

var o = new Object();var o = new Object();  // 有效,但不推荐

3)Object类型所具有的任何属性和方法存在于更具体的对象中。可以这么理解,Object是所有对象的基础,也就是父类,我们自定义创建的对象都继承了它的特性。

4)Object实例的属性和方法

  • constructor:保存着用于创建当前对象的函数。
  • hasOwnProperty(“propertyName”):用于检查给定的属性在当前对象实例中是否存在。
  • isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。
  • toLocaleString:返回对象的字符串表示,该字符串与执行环境的地区对应。
  • toString():返回对象的字符串表示。
  • valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。