ES6中的let和var区别

js函数中声明变量有多种方式。

var xx;

function test(){
        var aa; //声明一
        let bb;//声明二
        this.cc;//声明三

        //声明一局部代码块
        {
            let dd;//声明四
        }
}
那么,这三种方式有什么区别呢?

**区别在于作用域不同。**

let 声明的变量作用域为某个代码块。而代码块的长度可大可小。也就是说,当按声明二的方式声明一个变量时,该变量的作用范围于为整个function语句。当按声明四方式声明一个变量时,该变量的作用范围为局部的代码块。

var声明的变量作用域为整个函数体(当按声明一的方式声明变量时);当var变量声明在函数外,该var变量的作用域为**整个js文件周期**(全局作用域)。

那么,用this声明的变量呢?

简单地说,用this声明的变量作用域也是全局的。如果实例化test函数   var p=new test()  那么用p能访问test函数内的哪些变量呢?答案是只有cc 。实际上this声明的变量是作用于上下文的。

原文地址:https://www.cnblogs.com/difs/p/9268498.html

时间: 2024-11-09 06:27:29

ES6中的let和var区别的相关文章

JS ES6中Arguments和Parameters的区别

1.简谈Arguments和Parameters 通常情况下Arguments和Parameters是可以互相使用的,但是在大多数的标准中这两个还是有那么一丢丢的却别的,Parameters(形式参数)指声明函数名和函数体的时候使用的参数,而Arguments(实际参数)指在函数实际调用的时候传入的确定值 1 function demo(a,b){ 2 console.log(a,b); 3 } 4 demo(1,2); 咱们就上面的函数来说,a.b是函数的形式参数,而在函数的调用中1.2是函数

ES6 中 export ,export default 区别

1.export与export default均可用于导出常量.函数.文件.模块等: 2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用: 3.在一个文件或模块中,export.import可以有多个,export default仅有一个: 4.通过export方式导出,在导入时要加{ },export default则不需要. export //a.js export const str = "hello es6&quo

es6中let实例应用之一

有如下情景 html部分: <button class="btn">按钮1</button> <button class="btn">按钮2</button> <button class="btn">按钮3</button> <button class="btn">按钮4</button> js部分: var btns = $('.

前端面试题:JS中的let和var的区别

最近很多前端的朋友去面试被问到let和var的区别,其实阮一峰老师的ES6中已经很详细介绍了let的用法和var的区别.我简单总结一下,以便各位以后面试中使用. ES6 新增了let命令,用来声明局部变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束. 先看个var的常见变量提升的面试题目: 题目1: var a = 99; // 全局变量a f(); // f是函数,虽然定义在调用的后面,但是函数声明会提升到作用域的顶部. console.l

ES6新增关键字let与var的区别

最近看了很多文章,偶然间看到ES6中新增了一个关键字 let ,它具有与 var 关键字相似的功能.一开始使用它时,发现它让我对之前一些习以为常的东西产生了怀疑. 下面先让我们看看它和 var 之间用法的不同 { var a = 10; let b = 8; } a  //10 b  // Referenceerror :b is not defined 上面在代码块中声明了两个变量并分别赋值输出到控制台,结果a的变量成功输出,b的输出结果产生了报错.可见,let声明的变量只在它所在的代码块中产

【转载】在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别

原文链接:http://www.2cto.com/kf/201204/128406.html[侵删] Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的.可以正常运行的代码并不代表是合适的代码. var num = 1: 是在当前域中声明变量. 如果在方法中声明,则为局部变量(local var

JavaScript中声明是否有var的区别

本文来论述JavaScript中变量声明有var和没有var的区别,关于JavaScript中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是: (function(){ // ... })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECM

JavaScript ES6中export及export default的区别

相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在JavaScript ES6中,export与export default均可用于导出常量.函数.文件.模块等,你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用,但在一个文件或模块中,export.import可以有多个,export default仅有一个. 具体使用: 1. //demo1.js export con

在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别,== 和 ===的区别

1. 在Javascript中 声明时用"var"与不用"var"的区别 Javascript声明变量时 var a = 111; 和 a = 111; 两种方式一样吗? var a = 11;function test4(){    var a = 22; } test4(); console.log(a); 结果是什么呢? 11 这个好理解, 函数内的var a声明是内部变量,这时结果是第一个a的值. 变动一下如下: var abc = 11;function