Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3224868
  • 博文数量: 270
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1993
  • 用 户 组: 普通用户
  • 注册时间: 2019-10-28 13:40
文章分类

全部博文(270)

文章存档

2022年(43)

2021年(155)

2020年(50)

2019年(22)

我的朋友

分类: JavaScript

2020-03-25 16:44:29

在JavaScript中有三种声明变量的方式:var、let、const。




目录
1.var
2. let
3. const
1.var
(1)var定义的变量在之后可以修改,如果不初始化会输出undefined,不会报错。




var a;
console.log(a);   // undefined
// -----------------------------
console.log(a);     // undefined
var a = 1;
1
2
3
4
5
(2)var定义的变量,可以跨块访问, 不能跨函数访问。




(3)var只有函数作用域,没有块级作用域。




(4)var的作用域是函数作用域,var可以用来声明全局变量,也可以声明局部变量。在一个函数内利用var声明一个变量,则这个变量只在这个函数内有效。




全局变量:在函数外定义的变量,作用域是整个代码文件。
局部变量:在函数内定义的变量,作用域是当前的函数内部。
var a = 666;  
console.log("函数外var定义a:" + a); // 函数外var定义a:666
数字货币

function cg(){
a = 888;
console.log("函数内var定义a:" + a);// 函数内var定义a:888
}




cg();
console.log("函数调用后var定义a为函数内部修改值:" + a);
// 函数调用后var定义a为函数内部修改值:888
1
2
3
4
5
6
7
8
9
10
11
(5)可以重复定义,后面的值会覆盖前面的。




var a = 1;
var a = 2;
console.log(a); // 2
1
2
3
2. let
(1)let是块级作用域,函数内部使用let定义后,对函数外部无影响。




let a = 666;  
console.log("函数外let 定义a:" + a); // 函数外let 定义a:666




function cg(){
let a = 888;
console.log("函数内let 定义a:" + a);// 函数内let 定义a:888
}




cg();
console.log("函数调用后let 定义a为函数内部修改值:" + a);
// 函数调用后let定义a为函数内部修改值:666
1
2
3
4
5
6
7
8
9
10
11
(2)不存在变量声明提前,否则会报错。




console.log(a);
let a = 1;
1
2








(3)let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。




    var c=11;
{
    let c=12;
    console.log(c);// 12
}
    console.log(c);// 11
1
2
3
4
5
6
(4)不能重复定义,否则会报错。




let a = 1;
let a = 2;
console.log(a);
1
2
3








3. const
(1)const定义的变量不可以修改,而且必须初始化。




const b = 2;// 正确
const b;   // 错误,必须初始化
1
2
(2)const一般用来声明常量,且声明的常量是不允许改变的,为只读属性,因此就要在声明的同时赋值。




(3)const与let一样,都是块级作用域,只能在块作用域里访问,存在暂时性死区,不存在变量声明提前,不允许重复定义。




const b = 2; 
const b = 2; 
console.log(b);
1
2
3










阅读(3186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~