JavaScript变量及数据类型

变量

ECMAScript的变量是松散类型的,表现为:

  • 声明变量时,不用指定数据类型
  • 同个变量可以引用不同的数据类型

变量声明

使用var操作符声明变量

var variableName; //由于未初始化,变量值为undefined

变量初始化

当我们声明一个变量但未初始化时,变量的默认值是undefined

var variableName = value;

全局变量和局部变量

var name = "weixia";
age = 24;
function sayName() {
    var name;
    alert(name);
}

sayName();
alert(name);
alert(age);

上面代码打印:

undefined
weixia

sayName函数内部代码块定义一个同名局部变量name,它具有局部作用域,生命周期从定义处开始,到右花括号结束。

行1中声明的name具有全局作用域,它会自动被归于windows对象的命名空间。

行2age是全局变量,具有全局作用域,它会自动被归于windows对象的命名空间。

数据类型

ECMAScript数据类型:

  • 五种基本类型
    • Undefined
    • Null
    • Boolean
    • Number
    • String
  • 一种复杂类型
    • Object
  • ECMAScript不支持自定义类型,所有值都是上述6种数据类型之一

typeof

typeof是一个操作符,不是函数,它用于判断数据类型,返回值是字符串

typeof 24;	// "number"
typeof("Hello");	// "string"
typeof null;	// "object"

须要注意的是,任何对象和null都返回"object"

Undefined

Undefined类型,实际取值只有一个——undefined

当变量未初始化时,默认值为undefined

Null

Null类型表示空的对象引用,实际取值只有一个——null

通常用作要储存对象变量的初始值

Boolean

Boolean类型实际取值有两个:

  • true
  • false

其他数据类型可以转换为Boolean类型,转换结果取决于待转换数据的数据类型和实际取值

数据类型 结果为true的实际取值 结果为false的实际取值
Boolean true false
String 非空字符转 空字符串
Number 任何非零数(包括无穷大) 0或NaN
Object 非null对象 null
Undefined undefined

Number

Number类型的实际取值有:

  • 整数
  • 浮点数
  • Infinity
  • NaN

NaN的特点是:

  1. 任何涉及NaN的操作都返回NaN
  2. NaN与任何值都不相等,包括NaN本身

isNaN函数对于任何不能被Number()转换为数值的参数,返回true

数值转换

  • Number()函数

    数据类型 结果
    Number 简单的传入和返回
    Null 0
    Undefined NaN
    Boolean 0或1
    String 空字符串返回0;满足数字格式的字符串返回对应的数字;其他情况返回NaN
  • parseInt()函数

    专门用于将字符串解析为整数。它会尽可能的将字符串(或第一个整数子序列)转换为整数

  • parseFolat()函数

    专门用于将字符串解析为浮点数。它会尽可能的将字符串(或第一个浮点数子序列)转换为浮点数

String

NumberBooleanObjectStringtoString方法可以将其本身转换为字符串。

String()函数可以将任意类型转换为字符串,转换时有toString方法的调用toString方法,null返回"null",undefined返回"undefined"

Object

通过new操作符创建对象:

object = new Object()
  • Constructor属性

    保存用于创建当前对象的构造函数

  • hasOwnProperty(propertyName)

    检定属性在当前实例对象中,而不是实例的原型中

  • propertyIsEnumerable(propertyName)

    检定给定的属性是否能使用for-in语句

  • toString()

    返回对象的字符串表示

  • valueof()

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

原文地址:https://www.cnblogs.com/weixia-blog/p/9757665.html