web前端学习

2018-11-29 js中的var(变量提升)和let

2018-11-29  本文已影响2人  正阳Android

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>变量提升</title>

</head>

<body>

<script type="text/javascript">

// 使用var声明,会出现变量提升

function foo() {

var x = 'Hello, ' + y;

console.log(x);

var y = 'Bob';

}

foo();

// 这里并不会报错,打印出来的数据是 hello,undefined; // 因为js中会自动提升变量y的声明,但是不会提升变量y的赋值

// 使用let

function foo2() {

let x = 'Hello, ' + y;

console.log(x);

let y = 'Bob';

}

//  使用let,会报错,y is not defined;

// 另外,使用var声明变量,可以多次声明而不报错

function foo3() {

var x = 1;

var x = 2;

console.log(x);

}

foo3();

// 使用let声明-这么做会报错,出现x has been declared

function foo5() {

let x = 1;

let x = 2;

console.log(x);

}

foo5();

</script>

</body>

</html>

上一篇 下一篇

猜你喜欢

热点阅读