javascript有几种变量
更新时间:2023-10-08
JavaScript是一种动态语言,也就是说在运行时才能确定变量的类型。在JavaScript中,变量可以被赋予不同的值,在不同的情况下可以使用不同的类型。在本文中,我们将介绍JavaScript中不同的变量类型。
### 原始类型变量
首先介绍的是原始类型变量。原始类型变量是一种数据类型,其值是不可更改的。在JavaScript中,原始类型变量有五种:数值(Number)、字符串(String)、布尔值(Boolean)、null和undefined。以下是一个简单的示例:
// 数值(Number) var num = 1; console.log(num); // 输出 1 // 字符串(String) var str = "hello world"; console.log(str); // 输出 "hello world" // 布尔值(Boolean) var flag = true; console.log(flag); // 输出 true // null var nullVar = null; console.log(nullVar); // 输出 null // undefined var undefinedVar; console.log(undefinedVar); // 输出 undefined### 引用类型变量 引用类型变量是指值可以包含任何值的变量。这些变量的值通常包含复杂的结构,如对象、数组和函数。这些变量是指向存储它们的内存地址的变量。以下是一个简单的示例:
// 对象(Object) var obj = { name: "张三", age: 18 }; console.log(obj.name); // 输出 "张三" // 数组(Array) var arr = [1, 2, 3]; console.log(arr[0]); // 输出 1 // 函数(Function) var func = function() { console.log("Hello World"); }; func(); // 输出 "Hello World"此外,在ES6中有一个新的引用类型叫做Symbol,它表示对象的唯一性。 ### 变量声明 在JavaScript中,变量声明有两个关键字:var和let。在ES6中还引入了const关键字,它用于声明常量。 在ES6之前,var是唯一的关键字来声明变量。var声明的变量是函数级别作用域。ES6引入了let和const两个关键字。let声明的变量是块级别的作用域,而const的值是不可更改的常量。以下是一个示例:
function test() { var a = 1; if (a === 1) { var b = 2; let c = 3; const d = 4; } console.log(b); // 输出 2 console.log(c); // 报错 console.log(d); // 报错 } test();在上面的示例中,变量b在函数级别作用域内被定义(var声明),而变量c和d在块级别作用域内被定义(let和const声明)。 ### 变量作用域 变量作用域指的是在代码中变量定义的范围。在JavaScript中,变量作用域有两种:全局作用域和局部作用域。 在函数内部定义的变量拥有局部作用域,它们只能在该函数内部访问。如下是一个示例:
function test() { var a = 1; console.log(a); // 输出 1 // 定义一个局部变量b if (a === 1) { var b = 2; console.log(b); // 输出 2 } console.log(b); // 输出 2 } test(); console.log(b); // 报错,b不能在函数外部访问而在当前全局作用域下定义的变量可以在代码中的任何位置访问。如下是一个示例:
var a = 1; function test() { console.log(a); // 输出 1 } test(); console.log(a); // 输出 1总结:JavaScript中有原始类型变量和引用类型变量。原始类型变量有数值、字符串、布尔值、null和undefined。引用类型变量有对象、数组和函数,ES6中还引入了Symbol。变量声明有关键字var和let,ES6还引入了const用于声明常量。变量作用域有全局作用域和局部作用域。在函数内部定义的变量拥有局部作用域,而在当前全局作用域下定义的变量可以在代码中的任何位置访问。