首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSvar与let、const区别

var与let、const 一、var声明变量会挂载在window上,而let和const声明变量不会: var a = 100; console.log(a,window.a); // 100...声明变量存在变量提升,let和const不存在变量提升 console.log(a); // undefined ===> a已声明还没赋值,默认得到undefined var a = 100; console.log...可以 var a = 100; console.log(a); // 100 var a = 10; console.log(a); // 10 let a = 100; let a = 10;...五、暂存死区 var a = 100; if(1){ a = 10; //在当前块作用域中存在a使用let/const声明情况下,给a赋值10时,只会在当前作用域找变量a, // 而这时...* *   2、声明后不能再修改 * *   3、如果声明是复合类型数据,可以修改其属性 * * */ const a = 100; const list = []; list[0] = 10;

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JSconst、var 和let区别

    今天第一次遇到const定义变量,查阅了相关资料整理了这篇文章。主要内容是:js中三种定义变量方式const, var, let区别。 1.const定义变量不可以修改,而且必须初始化。...1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + b);//有输出 4 // b = 5; 5 //...console.log('函数外修改const定义b:' + b);//无法输出 2.var定义变量可以修改,如果不初始化会输出undefined,不会报错。...1 var a = 1; 2 // var a;//不会报错 3 console.log('函数外var定义a:' + a);//可以输出a=1 4 function change(){ 5 a = 4...; 6 console.log('函数内var定义a:' + a);//可以输出a=4 7 } 8 change(); 9 console.log('函数调用后var定义a为函数内部修改:' + a

    2.7K60

    jsconst,var,let定义变量区别

    jsconst,var,let定义变量区别 1.const定义变量不可以修改,而且必须初始化 const b = 2;//正确 // const b;//错误,必须初始化 console.log...('函数外const定义b:' + b);//有输出 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 2.var定义变量可以修改...,如果不初始化会输出undefined,不会报错 var a = 1; // var a;//不会报错 console.log('函数外var定义a:' + a);//可以输出a...=1 function change(){ a = 4; console.log('函数内var定义a:' + a);//可以输出a=4 } change...(); console.log('函数调用后var定义a为函数内部修改:' + a);//可以输出a=4 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。

    3.2K30

    JavaScript(JS)var和let区别及推荐

    以下内容摘自网络多篇文章和自己一些总结,如有错误望指出与纠正....,但是var可以得。...也就是说,let必须是先定义,再使用,而var先使用后声明也行,只不过直接使用但是没有却没有定义时候,其为undefined,实际上var有一个变量提升过程。...也就是说,当这个函数作用域被创建时候,实际上var定义变量都会被创建,并且如果此时没有初始化的话,则默认会初始化一个undefined, 补充: var js=function(){} 这种叫做函数表达式...必须先定义后使用 function js(){}这种是函数声明 可以先使用后定义 它会对函数声明进行一个提升,提升只是相当于提前声明,函数提前声明,在使用时候不会报错。

    1.4K50

    前端面试题:JSlet和var区别

    最近很多前端朋友去面试被问到let和var区别,其实阮一峰老师ES6已经很详细介绍了let用法和var区别。我简单总结一下,以便各位以后面试中使用。...ES6可以用let定义块级作用域变量 在ES6之前,我们都是用var来声明变量,而且JS只有函数作用域和全局作用域,没有块级作用域,所以{}限定不了var声明变量访问范围。...例如: { var i = 9; } console.log(i); // 9 ES6新增let,可以声明块级作用域变量。...JSfor循环体比较特殊,每次执行都是一个全新独立块作用域,用let声明变量传入到 for循环体作用域后,不会发生改变,不受外界影响。...让js真正拥有了块级作用域,也是向这更安全更规范路走,虽然加了很多约束,但是都是为了让我们更安全使用和代码。

    1.4K100

    js如何判断数组包含某个特定_js数组是否包含某个

    array.indexOf 判断数组是否存在某个,如果存在返回数组元素下标,否则返回-1 let arr = ['something', 'anything', 'nothing',...参数:searchElement 需要查找元素。 参数:thisArg(可选) 从该索引处开始查找 searchElement。...numbers.includes(8); # 结果: true result = numbers.includes(118); # 结果: false array.find(callback[, thisArg]) 返回数组满足条件第一个元素...方法,该方法返回元素在数组下标,如果不存在与数组,那么返回-1; 参数:searchElement 需要查找元素。...参数:arr 需要查找数组 var arr=['aaa','bbb','ccc','ddd','eee']; var a= $.inArray('bbb',arr); console.log(

    18.4K40

    js匿名函数_js匿名函数怎么定义

    大家好,又见面了,我是你们朋友全栈君。 定义:匿名函数顾名思义指的是没有名字函数,在实际开发中使用频率非常高!也是学好JS重点。 匿名函数:没有实际名字函数。...var fn=function(){ return "我是一只小小小小留下,怎么飞也飞不高!"...JavaScript是没有块级作用域,例如: if(1==1){//条件成立,执行if代码块语句。...在这里简单介绍一下:闭包是可以访问在函数作用域内定义变量函数。若要创建一个闭包,往往都需要用到匿名函数。 2、模拟块级作用域,减少全局变量。...执行完匿名函数,存储在内存相对应变量会被销毁,从而节省内存。再者,在大型多人开发项目中,使用块级作用域,会大大降低命名冲突问题,从而避免产生灾难性后果。

    10.3K10

    JS 可以提升幸福度小技巧

    本文主要介绍一些JS中用到小技巧,可以在日常Coding中提升幸福度,将不定期更新~ 1....我们知道JS中有一些假:false, null, 0, "", undefined, NaN,怎样把数组快速过滤呢,可以使用Boolean构造函数来进行一次转换 const compact...2.5 一次性函数 跟上面的惰性载入函数同理,可以在函数体里覆当前函数,那么可以创建一个一次性函数,重新赋值之前代码相当于只运行了一次,适用于运行一些只需要执行一次初始化代码 var sca =...在下面的代码,我们将数列翻倍,然后挑选出那些大于50数。...由于我们使用是async/await,函数把返回放在一个数组。而我们使用数组解构后就可以把返回直接赋给相应变量。

    92310

    JS 可以提升幸福度小技巧

    本文主要介绍一些JS中用到小技巧,可以在日常Coding中提升幸福度,将不定期更新~ 1....我们知道JS中有一些假:false,null,0,"",undefined,NaN,怎样把数组快速过滤呢,可以使用Boolean构造函数来进行一次转换 const compact = arr...2.5 一次性函数 跟上面的惰性载入函数同理,可以在函数体里覆当前函数,那么可以创建一个一次性函数,重新赋值之前代码相当于只运行了一次,适用于运行一些只需要执行一次初始化代码 var sca =...在下面的代码,我们将数列翻倍,然后挑选出那些大于50数。...由于我们使用是async/await,函数把返回放在一个数组。而我们使用数组解构后就可以把返回直接赋给相应变量。

    1.4K30
    领券