JS中的let变量

介绍JS中的let变量:

  let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。在Function中局部变量推荐使用let变量,避免变量名冲突。

 作用域规则

  let 声明的变量只在其声明的块或子块中可用,这一点,与var相似。二者之间最主要的区别在于var声明的变量的作用域是整个封闭函数。

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // 同样的变量!    console.log(x); 

// 2  }
  console.log(x);  // 2}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // 不同的变量    console.log(x);  // 2  }
  console.log(x);  // 1}

原文地址:https://www.cnblogs.com/Caersi/p/8505208.html

时间: 2024-10-07 23:02:13

JS中的let变量的相关文章

js中,var 修饰变量名和不修饰的区别

js中 允许在定义变量的时候 不加var 修饰符.js会在当前作用域下寻找上下文是否定义了此变量, 如果没有找到则会为这个变量分配内存.当且将其视为window的成员. 也就是全局变量. 如果加了var 修饰符. js会重新为这个变量分配内存,不论当前上下文中是否已经定义过了.这个变量的作用域就为当前上下文. 即局部变量. 不加var的写法是强烈不推荐的.1. 语义不清楚. 2. 团队开发时,容易覆盖掉其它作用域内的变量,引发异常.3. 给window对象添加不必要成员. 等等

js中静态函数与变量

一 私有变量和函数 js中没有概念上的私有,公有也没有静态和非静态相关概念,有的只能是通过作用于来模仿 函数的块级作用域使得函数内部成员可以不被外部所访问,比如我们使用块级作用于定义一个类 //定义一个命名空间,用于相关类挂靠到该空间下,使得外部通过该命名空间访问某个类型 var MyLib = window.MyLib = MyLib || {}; (function{ // 在函数内部 name 是不会被外部直接能够访问的,除非通过方法暴露接口 var name=''; //同样的道理,如果

JS中的this变量的使用介绍

脚本之家 在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余. 对于this变量最要的是能够理清this所引用的对象到底是哪一个,也许很多资料上都有自己的解释,但有些概念讲的偏繁杂.而我的理解是:首先分析this所在的函数是当做哪个对象的方法调用的,则该对象就是this所引用的对象. 示例一. 代码如下: var obj = {}; obj.x = 100; obj.y

js中要声明变量吗?

你好,js语言是弱类型语言,无需申明即可直接使用,默认是作为全局变量使用的.建议:在function里时应使用var 申明变量,这样改变量仅仅只在function的生存周期内存在,不会污染到,全局控件.至于直接在<script>标签内使用的话则申明不声明效果都是一样的. 下面的文章可以帮助你更清楚的了解js变量一.变量的类型 Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个

JS 中闭包的变量 闭包与this

闭包与变量: 作用域链的一个副作用,闭包只能取得包含函数中任何变量的最后一个值.别忘了闭包所保存的是整个变量对象,而不是某个特殊的变量. function fn1(){ //创建一个数组 var arr = new Array(); //为数组赋值,此时i是保存在fn1 这个作用域中 for (var i = 0; i <10; i++) { arr[i] = function(){ return i } } return arr; } var fs = fn1(); for (var i =

JS中的 公有变量、私有变量 !

公有变量.私有变量 ! 初学者的见解,算是记录学习过程,也算是分享以便共同成长,如有不正确的地方,还请不吝赐教! 先看代码1: function car(){ var wheel = 3; //私有变量 this.wheel = 4; //公有变量 alert(wheel); alert(this.wheel); } var car1 = new car();结果是:3 4 代码2: function car(){ var wheel = 3;//私有变量 this.wheel = 4;//公有

在js中关于同名变量和函数的地位争夺问题

先上一段让大家比较蒙圈的代码,接下来再慢慢讲解 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> console.log(f

JS中作用域和变量提升(hoisting)的深入理解

作用域(Scoping) javascript作用域之所以迷惑,是因为它程序语法本身长的像C家族的语言.我对作用域的理解是只会对某个范围产生作用,而不会对外产生影响的封闭空间.在这样的一些空间里,外部不能访问内部变量,但内部可以访问外部变量. c语言的变量分为全局变量和局部变量,全局变量的作用范围是任何文件和函数访问(当然,对于非变量定义的其他c文件,需要使用extern关键字进行申明,使用static关键字也可以将作用范围限定在当前文件中),局部变量的作用范围就是从申明到最近的大括号涵盖的块级

js中为什么说变量是弱类型和松散型?

见解1: 弱类型语言 是相对强类型语言来说的在强类型语言中,变量类型有多种,例如int char float boolean 等不同的类型相互转换有时需要强制转换而javascript只有一种类型var ,为变量赋值时会自动判断类型并进行转换所以javascript是弱语言就体现在变量定义类型VAR上了 见解2: 声明变量:var=a;//a可以是任何一种数据类型()而如果是C等强类型语言int a; a是整形变量float a;string a;//字符串 见解3: 别的编程语言会对变量的类型