c语言编程笔录

首页 >   > 笔记大全

笔记大全

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用于声明常量。变量作用域有全局作用域和局部作用域。在函数内部定义的变量拥有局部作用域,而在当前全局作用域下定义的变量可以在代码中的任何位置访问。