JavaScript教程

数据类型和变量

Preview
  • JavaScript的数据类型和变量
  • 基本数据类型
  • 1. 数字(Number)
  • 2. 字符串(String)
  • 3. 布尔(Boolean)
  • 4. null
  • 5. undefined
  • 6. Symbol
  • 7. BigInt
  • 复杂数据类型
  • 1. 对象(Object)
  • 2. 数组(Array)
  • 变量
  • var
  • let
  • const
  • 类型转换
  • 1. 字符串转数字
  • 2. 数字转字符串
  • 3. 布尔转数字
  • 4. 数字转布尔
  • 变量作用域
  • 全局作用域
  • 局部作用域
  • 变量提升
  • 总结

JavaScript的数据类型和变量

JavaScript是一种动态类型语言,其变量的类型是根据值自动推断的。JavaScript中有七种基本数据类型和一种复杂数据类型。

基本数据类型

1. 数字(Number)

数字类型表示整数和浮点数。例如:

var x = 10; // 整数
var y = 3.14; // 浮点数

2. 字符串(String)

字符串类型表示文本。可以用单引号或双引号表示。例如:

var name = "John"; // 双引号
var message = 'Hello world'; // 单引号

3. 布尔(Boolean)

布尔类型表示真或假。例如:

var isFinished = true; // 真
var isActive = false; // 假

4. null

null表示一个空值。例如:

var person = null;

5. undefined

undefined表示一个未定义的值。例如:

var age;
console.log(age); // undefined

6. Symbol

Symbol是ES6中新增的数据类型,表示唯一的标识符。例如:

var id = Symbol("id");

7. BigInt

BigInt是ES10中新增的数据类型,表示任意精度的整数。例如:

var num = 1234567890123456789012345678901234567890n;

复杂数据类型

1. 对象(Object)

对象类型表示一个包含多个属性的数据结构。例如:

var person = {
  name: "John",
  age: 30,
  address: {
    city: "New York",
    state: "NY"
  }
};

2. 数组(Array)

数组类型表示一个包含多个值的数据结构。例如:

var fruits = ["apple", "banana", "orange"];

变量

在JavaScript中,变量可以用var、let或const关键字声明。其中,var是ES5中引入的,let和const是ES6中引入的。

var

var可以声明全局变量或局部变量。例如:

var x = 10; // 全局变量
function foo() {
  var y = 20; // 局部变量
}

let

let可以声明块级作用域的变量。例如:

function foo() {
  let x = 10; // 块级作用域变量
  if (true) {
    let y = 20; // 块级作用域变量
  }
}

const

const可以声明常量,其值不能被修改。例如:

const PI = 3.14;

类型转换

JavaScript中的数据类型可以相互转换。常见的类型转换包括:

1. 字符串转数字

可以使用parseInt()或parseFloat()将字符串转换为数字。例如:

var x = parseInt("10"); // 整数
var y = parseFloat("3.14"); // 浮点数

2. 数字转字符串

可以使用toString()将数字转换为字符串。例如:

var x = 10;
var str = x.toString(); // "10"

3. 布尔转数字

可以使用Number()将布尔值转换为数字。true转换为1,false转换为0。例如:

var x = Number(true); // 1
var y = Number(false); // 0

4. 数字转布尔

可以使用Boolean()将数字转换为布尔值。非零数字转换为true,0转换为false。例如:

var x = Boolean(10); // true
var y = Boolean(0); // false

变量作用域

在JavaScript中,变量有全局作用域和局部作用域。

全局作用域

全局作用域中声明的变量可以在整个程序中访问。例如:

var x = 10; // 全局变量
function foo() {
  console.log(x); // 10
}
foo();

局部作用域

局部作用域中声明的变量只能在局部作用域内访问。例如:

function foo() {
  var x = 10; // 局部变量
  console.log(x); // 10
}
foo();
console.log(x); // 报错:x未定义

变量提升

在JavaScript中,变量可以在声明之前使用。这是因为JavaScript会将变量的声明提升到作用域的顶部。例如:

function foo() {
  console.log(x); // undefined
  var x = 10;
}
foo();

上面的代码中,变量x在声明之前就被使用了,但是并没有报错。这是因为JavaScript会将变量x的声明提升到函数的顶部,相当于:

function foo() {
  var x;
  console.log(x); // undefined
  x = 10;
}
foo();

总结

JavaScript中有七种基本数据类型和一种复杂数据类型。变量可以用var、let或const关键字声明。JavaScript中的数据类型可以相互转换。变量有全局作用域和局部作用域,变量的声明会被提升到作用域的顶部。