1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script type="text/javascript">
  7. /*
  8. *字面量,都是一些不可改变的值
  9. * 比如:1 2 3 4 5
  10. * 字面量都是可以直接使用,但是我们一般都不会直接使用字面量
  11. *
  12. * 12312867861231238554545
  13. *
  14. * 变量 变量可以用来保存字面量,而且变量的值是可以任意改变的
  15. * 变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量
  16. *
  17. *
  18. * x=12312867861231238554545
  19. */
  20. //声明变量
  21. //在js中使用var关键字来声明一个遍变量
  22. var a;
  23. //为变量赋值
  24. a=123
  25. a=456
  26. a=123123123123
  27. console.log(a);
  28. </script>
  29. </head>
  30. <body>
  31. </body>
  32. </html>

image.png

JS —- var、let、const三者的区别

JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中新增了块级作用域。块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。
es5:var    es6:let 、const

1.var定义变量,没有块的概念,可以跨块访问,不能跨函数访问,不初始化出现undefined,不会报错。
2.let定义变量,只能在块作用域里访问,也不能跨函数访问,对函数外部无影响。
3.const定义常量,只能在块作用域里访问,也不能跨函数访问,使用时必须初始化(即必须赋值),而且不能修改。

  1. <script type="text/javascript">
  2. // 块作用域
  3. {     var a = 1;
  4. let b = 2;
  5. const c = 3;
  6. // c = 4; // 报错,const不能修改
  7. var aa;
  8. let bb;
  9. // const cc; // 报错,必须初始化(即必须赋值)
  10. console.log(a); // 1
  11. console.log(b); // 2
  12. console.log(c); // 3
  13. }
  14. console.log(a); // 1
  15. // console.log(b); // 报错,只能在块作用域里访问
  16. // console.log(c); // 报错,只能在块作用域里访问
  17. // 函数作用域
  18. (function A() {
  19. var d = 5;
  20. let e = 6;
  21. const f = 7;
  22. console.log(d); // 5
  23. console.log(e); // 6 (在同一个{ }中,也属于同一个块,可以正常访问到)
  24. console.log(f); // 7 (在同一个{ }中,也属于同一个块,可以正常访问到)
  25. })();    
  26. // console.log(d); // 报错,不能跨函数访问   
  27. // console.log(e); // 报错,不能跨函数访问   
  28. // console.log(f); // 报错,不能跨函数访问
  29. </script>