美文网首页
两道多选题

两道多选题

作者: 默成S | 来源:发表于2018-01-06 09:00 被阅读0次

第一题:

function bar(){
    return foo;
    foo = 10;
    function foo(){
    }
    var foo = "11";
}
console.log(typeof bar());

a. String b. Error c. function d. Number e. undefined

第二题:

function ahahaha(){
    return
    var test= {
        name:"xiaoming"     
    }
    test = 18
    test = "Thank you for your teaching"
}
console.log( typeof ahahaha());

a. String b. Error c. function d. Number e. undefined


在实际编码中运用两点技巧,这类问题永远不会困扰我们。1、变量命名的重要性!2、用let不是var。——也就是说,这个题目要考察的内容是变量命名提升。

在JS里,使用函数声明语句和通过Var声明变量都会提前至作用域的顶部,而使用函数声明语句实际上相当于通过Var声明了一个变量,并把一个函数对象赋值给它,特别的是定义赋值也一同提前。又由于使用var重复声明变量是合法的,所以当函数声明语句和通过Var声明变量同时存在且使用的变量名相同时,该变量的初始值是该函数对象而不是undefined。所以第一题选C。
函数执行return语句时会导致函数停止执行,并返回它的表达式(如果有的话)的值给调用者。如果return语句没有一个与之相关的表达式,则它返回undefinded值。此外,由于js会在retrun语句后填补分号,并不会和下一行的语句合并解析,所以第二题选E。

相关文章

网友评论

      本文标题:两道多选题

      本文链接:https://www.haomeiwen.com/subject/gdgenxtx.html