let 和var const 之间的区别

2023-02-02 0 424

var 新闻稿用语

var 是新闻稿表达式的URL,表达式中文名称最合适涵义明晰,以拉丁字母或是换行已经开始或是$,跟得上位数拉丁字母换行,无法用标点符号,比如说我要新闻稿两个“name”为“livall“ 的表达式,则能这种写

var name = “livall”;
var 表达式新闻稿的特征

1.表达式提高,原意是说能Mauvezin后新闻稿,流程无法崩盘,举个范例:

console.log(name); var name = “livall”;

2.其作用域为该句子所处的表达式内

function getName(){ var myName = livall; console.log(myName) } getName() console.log(myName)

间接在 getName()表达式外console.log(myName)会收起,var myName 只会在表达式getName()诺让促进作用。

let 和var const 之间的区别

let 新闻稿的用语

let 和const 是ES6 追加的三个URL,let 的用语近似于var, 但所新闻稿的表达式,只在let指示所处的标识符块内有效率。

基本上用语
{ let a = 0; console.log(a) // 0 } console.log(a) // 收起 ReferenceError: a is not defined

下面标识符在标识符块当中,用let新闻稿了表达式a。接着在标识符块以外初始化那个表达式,结论收起,这说明,let新闻稿的表达式只在它所处的标识符块有效率。因此对for循环式就很适宜,比如说下面那个范例

for (var i = 0; i < 10; i++) { console.log(i) }

原本你是想打印0到9的,但你会发现最后输出的全是10;

如果你用let 就不一样了,会得到你想要的结论。

let 和var const 之间的区别
不存在表达式提高
console.log(a); //ReferenceError: a is not defined let a = “livall”;

表达式 a 用 let 新闻稿不存在表达式提高,在新闻稿表达式 a 之前,a 不存在,因此会收起。

暂时性死区 (temporal dead zone,简称 TDZ)

ES6 明晰规定,如果区块中存在let和const指示,那个区块对这些指示新闻稿的表达式,从一已经开始就形成了封闭返回值。凡是在新闻稿之前就使用这些表达式,就会收起。

if (true) { // TDZ已经开始 name = livall; // ReferenceError console.log(name); // ReferenceError let name ; // TDZ结束 console.log(name ); // undefined name = livall; console.log(name ); // livall }

“暂时性死区”也意味着typeof不再是两个百分之百安全的操作。

typeof x; // ReferenceError let x;

ES6 规定暂时性死区和let、const句子不出现表达式提高,主要是为了减少运行时错误,防止在表达式新闻稿前就使用那个表达式,从而导致意料以外的行为。这种的错误在 ES5 是很常见的,现在有了这种规定,避免此类错误就很容易了。

总之,暂时性死区

不允许重复新闻稿

let不允许在相同返回值内,重复新闻稿同两个表达式。

// 收起 function func() { let a = 10; let a = 1; }

const 新闻稿的用语

基本上用语

const 声明两个只读表达式,新闻稿之后不允许改变。意味着,一旦新闻稿必须初始化,否则会收起。

const name = “livall”
暂时性死区
if(true){ console.log(name); // ReferenceError: name is not defined const name = “livall”; }

ES6 明晰规定,标识符块内如果存在 let 或是 const,标识符块会对这些指示新闻稿的表达式从块的已经开始就形成两个封闭返回值。标识符块内,在新闻稿表达式 PI 之前使用它会收起。

相关文章

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

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