首页
学习
活动
专区
工具
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

JS中const、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

jsvar、let、const区别

javascript中有三种声明变量方式:var、let、const 1.var 作用域:全局或局部 var作用域可以是全局或是局部,以下分四种情况说明: (1).当var关键字声明于函数内时是局部变量...(2)当var关键字声明于函数外时是全局变量,此时不论在函数外部还是内部都可以访问到。...(3)当var关键字第一次声明变量于函数外时是全局变量,并且在函数内又使用var关键字声明了同一名字变量,那么后声明这个是局部变量只作用于函数内,对函数外第一次声明变量不影响。...(4)当var关键字第一次声明变量于函数外时是全局变量,并且在函数内直接访问赋值了,那么此变量即是声明那个变量。 var定义变量可以修改,如果不初始化会输出undefined,但不会报错。...2.let 作用域:局部(块级作用域) let是块级作用域,函数内部使用let定义后,对函数外部无影响,在同一块域内let不可重复声明 3.const 作用域:局部(块级作用域) const定义变量作为一常量

2.2K20

js中const,var,let定义变量区别

js中const,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,整个函数内都是有效,比如说在for循环内定义了一个var变量,实际上其在for循环以外也是可以访问...也就是说,let必须是先定义,再使用,而var先使用后声明也行,只不过直接使用但是没有却没有定义时候,其为undefined,实际上var有一个变量提升过程。...也就是说,当这个函数作用域被创建时候,实际上var定义变量都会被创建,并且如果此时没有初始化的话,则默认会初始化一个undefined, 补充: var js=function(){} 这种叫做函数表达式...必须先定义后使用 function js(){}这种是函数声明 可以先使用后定义 它会对函数声明进行一个提升,提升只是相当于提前声明,函数提前声明,在使用时候不会报错。...let不能被重新定义,但是var是可以。比如说,你在前面声明了一个变量,后来写代码,因为忘了之前代码逻辑,又声明了一个同名变量,如果这俩变量逻辑不一样,并且后面都要用的话,很容易出问题。

1.4K50

JS底层理解var、let、const

目录 基本数据类型和引用数据类型 声明提升 var,let,const 基本数据类型和引用数据类型 基本数据类型是按访问,因为可以操作保存在变量中实际。...引用数据类型是保存在内存中对象,JS不允许直接访问内存中位置,所以在操作时候操作是对象引用;因此是引用数据类型是按照引用访问。...复制变量值 复制基本类型 var num1 = 5; var num2 = num1; num1和num2中5是完全独立,互不影响 ?...我们可以看到,obj1保存了一个对象实例,这个被复制到 Obj2中。...const 声明变量是常量; const 实际保证,并不是变量不变,而是变量指向那个内存地址所保存数据不得改动。 对于基本数据类型(数值。字符串。布尔)。

1.9K30

死磕JSvar、let、const 该怎么选?

var 在 ECMAScript 所有版本中都可以使用,而 const 和 let 只能在 ECMAScript6 及更晚版本中使用。 那么这 3 个关键字 都有哪些异同点及注意事项吗?...函数体为 函数作用域, 任意一个 {} 内为一个 块级作用域 var 声明变量,在函数作用域 中生效,所以只有在函数中声明变量属于局部变量,在代码块中声明依然为全局变量。...,不推荐省略关键字直接定义变量方式; 2、在严格模式下,不支持省略关键字直接定义变量方式; 3、var 可以重复声明,let 和 const 不可重复声明; 4、在全局作用域下,var 声明变量会成为...var 声明变量会自动提升到函数作用域顶部; var message = 'hi'; function test(){ console.log(message); // undefined...上添加属性,直接使用 window['属性'] = 属性 参考资料:JavaScript高级程序设计(第4版 中文)

1.9K10

js中全局变量_var变量提升原理

大家好,我是架构君,一个会写代码吟诗架构师。今天说一说js中全局变量_var变量提升原理,希望能够帮助大家进步!!!...第7行输出结果为100,因为局部变量a在第3行已经被赋值了100,所以直接输出局部变量a。...(这里即赋值),所以第3行输出结果为undefined,执行第4行a =10后,变量a就为10,所以第5行输出结果为10。...行a应该输出全局变量,而在函数执行之前已经声明过一个全局变量并赋值100,所以这里第上输出100。...第4行给全局变量a 重新赋值10,所以全局变量a变成10,所以第5行输出10。而在函数test外部,第8行输出全局变量a,因为全局变量被重新赋值为10,所以输出结果即为10。

5.6K30
领券