百科狗-知识改变命运!
--

js中let和var定义变量的区别

一语惊醒梦中人11个月前 (12-05)阅读数 6#综合百科
文章标签变量声明

let和var关键字的异同

1、声明后未赋值,表现相同

'use?strict';

(function()?{

var?varTest;

let?letTest;

console.log(varTest);?//输出undefined

console.log(letTest);?//输出undefined}());

2、使用未声明的变量,表现不同

(function()?{

console.log(varTest);?//输出undefined(注意要注释掉下面一行才能运行)

console.log(letTest);?//直接报错:ReferenceError:?letTest?is?not?defined

var?varTest?=?'test?var?OK.';

let?letTest?=?'test?let?OK.';}());

3、重复声明同一个变量时,表现不同

'use?strict';

(function()?{

var?varTest?=?'test?var?OK.';

let?letTest?=?'test?let?OK.';

var?varTest?=?'varTest?changed.';

let?letTest?=?'letTest?changed.';?//直接报错:SyntaxError:?Identifier?'letTest'?has?already?been?declared

console.log(varTest);?//输出varTest?changed.(注意要注释掉上面letTest变量的重复声明才能运行)

console.log(letTest);

}());

4、变量作用范围,表现不同

'use?strict';

(function()?{

var?varTest?=?'test?var?OK.';

let?letTest?=?'test?let?OK.';

{

var?varTest?=?'varTest?changed.';

let?letTest?=?'letTest?changed.';

}

console.log(varTest);?//输出"varTest?changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明

console.log(letTest);?//输出"test?let?OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量}());

本篇文章给大家带来的内容是介绍js中关键字var和let的区别是什么,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

首先我们了解一下关键字var和let有什么作用?如何使用?

关键字var

var语句在javascript中声明一个变量。

var a = 10;说明:

1、变量声明在代码执行之前被处理。

2、用var声明的JavaScript变量的范围是其当前执行上下文。

3、在函数之外声明的JavaScript变量的范围是全局的。

function nodeSimplified(){

var a =10;

console.log(a); // 输出: 10

if(true){

var a=20;

console.log(a); // 输出: 20

}

console.log(a); // 输出: 20

}在上面的代码中,当在if循环内更新变量时,你会发现变量“a”的值全局更新为20,因此在if循环之外值仍然存在。它类似于其他语言中的全局变量。但是,请务必小心使用此功能,因为可能会覆盖现有值。

关键字let

let语句在块作用域中声明一个局部变量。

let a =10;说明:

let语句允许我们创建一个变量,其范围仅限于使用它的块里。

它类似于我们在Java,.NET等其他语言中声明的变量。

function nodeSimplified(){

let a =10;

console.log(a); // 输出: 10

if(true){

let a=20;

console.log(a); // 输出: 20

}

console.log(a); // 输出: 10

js中let和var定义变量的区别

}关键字var和let的区别

在javascript中,关键字var和let都是可以用来声明变量的,那么他们有什么区别?

作用域

var是函数作用域,而let是块作用域。

可以说,与let相比,用var声明的变量在整个程序中被定义。

变量提升

let不会提升到它们出现的块的整个范围。相比之下,var可以如下所示提升。

// 定义后调用变量x

var x = 5;

document.write(x, "\n");

// 定义后调用变量y

let y = 10;

document.write(y, "\n");

//先调用变量z,在使用var定义变量z

document.write(z, "\n"); //显示undefined

var z = 2;

// 先调用变量a,在使用var定义变量a

document.write(a); //报错

let a = 3;运行:

重声明

在strict模式下,var将允许我们在同一范围内重新声明相同的变量;但,let不行:

'use strict';

var me = 'foo';

var me = 'bar'; // 此时,变量me里的值为bar'use strict';

let me = 'foo';

let me = 'bar'; // 报错: 标识符“me”已被声明总结:

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)