变量声明的三种方式:

  1. let
  2. const
  3. var

var 声明与 let 相似。大部分情况下,我们可以用 let 代替 var 或者 var 代替 let,都能达到预期的效果。

let和var的区别:

1、“var” 没有块级作用域

用 var 声明的变量,不是函数作用域就是全局作用域。它们在代码块外也是可见的(译注:也就是说,var 声明的变量只有函数作用域和全局作用域,没有块级作用域)。

if (true) {var test = true; // 使用 "var" 而不是 "let"
}alert(test); // true,变量在 if 结束后仍存在

由于 var 会忽略代码块,因此我们有了一个全局变量 test

如果我们在第二行使用 let test 而不是 var test,那么该变量将仅在 if 内部可见:

if (true) {let test = true; // 使用 "let"
}alert(test); // Error: test is not defined

对于循环也是这样的,var 声明的变量没有块级作用域也没有循环局部作用域:

for (var i = 0; i < 10; i++) {var one = 1;// ...
}alert(i);   // 10,"i" 在循环结束后仍可见,它是一个全局变量
alert(one); // 1,"one" 在循环结束后仍可见,它是一个全局变量

如果一个代码块位于函数内部,那么 var 声明的变量的作用域将为函数作用域:

function sayHi() {if (true) {var phrase = "Hello";}alert(phrase); // 能正常工作
}sayHi();
alert(phrase); // Error: phrase is not defined

可以看到,var 穿透了 iffor 和其它代码块。这是因为在早期的 JavaScript 中,块没有词法环境,而 var 就是这个时期的代表之一。

“var” 允许重新声明

如果我们用 let 在同一作用域下将同一个变量声明两次,则会出现错误:

let user;
let user; // SyntaxError: 'user' has already been declared

使用 var,我们可以重复声明一个变量,不管多少次都行。如果我们对一个已经声明的变量使用 var,这条新的声明语句会被忽略。

总结:

以前使用的var和val一个是可变和不可变的变量;现在都是用let和const声明变量,现在的标准基本都是let和const了。

js声明变量三种方式相关推荐

  1. JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

    文章目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2 ...

  2. 在HTML 中嵌入 JS 代码的三种方式

    一,在HTML中嵌入JS代码的第一种方式:行间事件 行间事件是指将JavaScript函数写到HTML元素中的执行事件. 1.JavaScript 是一种事件驱动型的编程语言,通常都是在发生某个事件的 ...

  3. js 函数定义三种方式

    <p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...

  4. JS绑定事件三种方式

    三种方式 1.在DOM中直接绑定 2.在JS代码中直接绑定 3.使用事件监听函数绑定事件 一.在DOM中直接绑定 也就是直接在html标签中通过 onXXX="" 来绑定.举个例子 ...

  5. HTML嵌入JS代码的三种方式

    目录 一.HTML嵌入JS代码的第一种方式:直接加一个事件句柄跟表达式 二.HTML嵌入JS代码的第二种方式:脚本块 三.HTML嵌入JS代码的第三种方式:外部引入js文件 一.HTML嵌入JS代码的 ...

  6. 前端js文件合并三种方式

    最近在思考前端js文件该如何合并,当然不包括不能合并文件,而是我们能合并的文件,想了想应该也只有三种方式. 三个方式如下: 1. 一个大文件,所有js合并成一个大文件,所有页面都引用它. 2. 各个页 ...

  7. 点击返回页面顶部(h5、js、jQuery 三种方式)

    当页面过长时,通常会在滚动条到一定位置时设置按钮,点击可以快速返回顶部或者指定的位置处. 参考文档:jQuery中页面返回顶部的方法总结 方法一:锚点定位 当点击a标签,会直接返回到顶部:如果p标签有 ...

  8. Web前端 | HTML嵌入JS代码的三种方式

    ✅作者简介:一位材料转码农的选手,希望一起努力,一起进步!

  9. js输出的三种方式:页面输出、对话框输出、控制台输出

    1.页面输出 document.write("图片上传失败") 2.对话框输出 window.alert("图片上传失败") 必须点击确定才能进行后续操作,打断 ...

最新文章

  1. Linux访问Windows磁盘实现共享
  2. 利用jsonp实现跨域登陆
  3. 命令注入_命令注入绕过方式总结
  4. OSI模型和TCP/IP协议族
  5. 运用Appium 实现添加微信好友自动化
  6. js 即时上传php_php+js实现异步图片上传实例分享
  7. 《深入理解java虚拟机》第1章 走近Java
  8. mac新手入门:在Mac上怎么使用夜览
  9. python的pandas库中read_table的参数
  10. 路由器k2固件改系统时间
  11. 腾讯云函数使用方法及注意事项
  12. 计算机系学生的梦想,编写我们的梦想——北大计算机系学生生活掠影-北京大学网络与信息.ppt...
  13. 小学生数量成为楼市风向标?
  14. 基于人脸识别的课堂签到管理系统【学习三】
  15. Android原生拼音输入法分析
  16. 产品能力提升|互联网产品·视觉设计
  17. 哈希算法原理与应用:确保数据完整性和安全性的关键技术
  18. arm学习笔记005之Linux平台下TFTP服务器构建
  19. 《DSP using MATLAB》Problem 8.22
  20. asp心得感受_半年多来自学ASP的几点体会……

热门文章

  1. Javascript 之《函数传参到底是值传递还是引用传递》
  2. 在工作中常用的sql语句
  3. html表格列平分行,CSS布局问题 , 如何实现一行多列div,类似于表格
  4. python 接口自动化测试_Python-基于数据驱动的接口自动化测试
  5. fcm模糊聚类matlab实例_模糊控制
  6. mybatis mapper配置 bigint_Mybatis-Plus入门
  7. 怎么用python算单价和总价_用python计算最高投标限价
  8. java正方形个圆形面积_java计算图形面积(圆形,正方形, 长方形).pptx
  9. 年味十足的喜庆红色新年春节海报PSD模板
  10. 高品质美食PSD分层海报,吸睛有食欲