H5W3
当前位置:H5W3 > 问答 > 正文

JavaScript var声明变量的问题

function test() {
console.log(name);//undefined
var name = 'nicholas';
console.log(name); //nicholas
if (true) {
var name = 'matter';
console.log(name); //matter
}
console.log(name); //matter
}
test();

当我把函数体里面的内容单独写出来的时候

console.log(name);//matter
var name = 'nicholas';
console.log(name); //nicholas
if (true) {
var name = 'matter';
console.log(name); //matter
}
console.log(name); //matter

为什么第二段代码log出来的值是matter呢,放在函数里面是undefined是因为把var声明提前了。但是单独写出来为什么不是undefined或直接报错

  • 初学js,请大佬们指点一下
  • 大佬们轻喷~

回答

你按f5刷新一下浏览器,再试试跑第二段

console.log(name);//undefined 

var name = 'nicholas';
console.log(name); //nicholas

if (true) {
    var name = 'matter';
    console.log(name);  //matter
}

console.log(name); //matter

正确结果如上,你得结果是错的

未经允许不得转载:H5W3 » JavaScript var声明变量的问题

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址