JS中变量声明 let、const、var三者区别

2022-12-31 0 1,050

在ES6以后,表达式根本无法是透过var展开新闻稿,ES6后的版又新减少了let和const三个URL展开表达式新闻稿。那时就而言说她们二者以后的差别。

当代JavaScript(ES6后),表达式是透过let URL展开新闻稿基本上出局var URL; 句法文件格式如下表所示:let i; let sum; 也能新闻稿数个表达式并展开表达式; let i , sum; let message = “hello word”; leti = 0, j =0 ,k = 0;let x = 2,y = x*x;

假如在let句子中不为表达式选定调用值,表达式也会被新闻稿,但在被表达式以后它的值是undefined。

若新闻稿自变量,则采用URLconst 而并非let,const与let类似于,差别是要在新闻稿表达式时,对其展开调用const H0 = 74; const C=3.14159

更为重要的是表达式除非新闻稿,它的值不容许发生改变,假如试著给它再次表达式就会放出TypeError。

在新闻稿自变量时,有个常用(不再具备社会性)签订合同,拉丁字母全数为小写。如下表所示边事例右图

何时能采用const?一般而言在表述值维持不变的情形(自变量)采用constURL展开表达式表述,如力学力学量,版号之类,若要发生改变表达式时,能用let对其再次表达式。

表达式与自变量返回值

表达式的返回值是流程源标识符中的两个地区,在那个地区内表述表达式有表述。透过let、const新闻稿的表达式和自变量具备块返回值。这意味著她们是在let、const句子所处的标识符块中有表述。在jsCubzac和表达式的表达式可被视为标识符块,if\else句子体、while和for第三阶段都是标识符块。这儿可称作局部表达式/自变量。在用let、const心灵表达式这时候要注意:未新闻稿以后提及表达式是不不合法的。

若新闻稿位于顶级,在任何标识符块外部,则称作全局表达式/自变量,具备全局返回值

重要提示

在同两个返回值里采用数个let或congst新闻稿同两个名字是句法错误。在嵌套返回值中新闻稿表达式是不合法的(尽量不要这么做)。

const x = 1; //新闻稿 x 为全局表达式 if (x === 1){ let x = 2; //在同两个标识符框中,x 能提及不同的值(局部表达式) console.log( x ) ;//打印 2 } console.log( x ) //打印1; let x = 3; //报错,因为再次新闻稿了x

采用var表达式

在ES6以后的js中,新闻稿表达式的唯一方式是采用URLvar , 无法新闻稿自变量。var 与let句法类似于。

var x ; var data = [],count = data.length; for(var i= 0 ; i <count ; i++) console.log(data[i]);

虽然var 和 let 有相同的句法,但她们有重要的差别。

采用var新闻稿表达式不再具备块返回值,这种表达式的返回值仅限于包含表达式的表达式体,无论她们在表达式中嵌套的层次有多深。假如在表达式体外采用var,则新闻稿两个全局变量,他与let最大的差别就是透过var心灵的全局表达式被实现为全局对象的属性。var多次新闻稿同名表达式是不合法的,let 只许新闻稿一次。var新闻稿最不同寻常的特性是返回值提升,该新闻稿会提升到表达式的顶部,但变量的调用仍在标识符所处位置完成,只是表达式的表述转移到了表达式顶部。var a =0; function b(){ console.log(a); var a = 1; console.log(a); } b();console.log(a); 相当于 var a =0; function b(){ var a; console.log(a); // undefined a = 1; console.log(a);//1 } b(); console.log(a);//0

输出结果:undefined 1 0

过用let新闻稿表达式,在let新闻稿前采用表达式,则会直接报错,不会得到undefined值。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务