zoukankan      html  css  js  c++  java
  • 面试题集锦;有关作用域和this的指向

    作用域面试题:

    1.

    fn()
    function fn () {
    console.log(12)
    }
    var as = function () {
    console.log(45)
    }

    2.

    var a = 12;
    function fn () {
    console.log(a)
    var a = 45;
    console.log(a)
    }
    fn()

    3.

    var a = 12;
    function fn () {
    console.log(a)
    a = 45;
    console.log(a)
    }
    fn()

    4.

    function fn () {
    console.log(11)
    function ff () {
    console.log(22)
    }
    ff()
    }
    fn()

    5.

    function fn () {
    console.log(5)
    fn()
    }
    fn()

    6.

    function fn () {
    console.log(12)
    }
    var as = fn()
    console.log(as)

    7.

    function fn () {
    console.log(12);
    return 45;
    console.log(456)
    }
    var as = fn()

    8.

    var a = 12;
    function fn () {
    console.log(a);
    return 4;
    var a = 45;
    }
    fn()

     9.

    var a = 45;
    function fn () {
    console.log(a)
    }
    fn()

    10.

    var a = 45;
    function fn (a) {
    console.log(a)
    }
    fn(5)

    11.

    var a = 123;
    function fun () {
    alert(a);
    }
    fun()

    12.

    var a = 123;
    function fun () {
    alert(a);
    var a = 456;
    }
    fun();
    alert(a);

    13.

    var a = 123;
    function fun () {
    alert(a);
    a = 456;
    }
    fun()
    alert(a)

    14.

    var a = 123;
    function fun (a) {
    alert(a)
    a = 456;
    }
    fun()
    alert(a)

    15.

    var a = 123;
    function fun (a) {
    alert(a)
    a = 456
    }
    fun()
    alert(a)
     

    16.

    function makeNoSense (x) {
    this.x = x;
    }
    makeNoSense(5);
    console.log(x);
    function test () {
    this.x = 1;
    alert(this.x);
    }
    test();
     
     

    This的面试题

    1.

    var name = '222';
    var a = {
    name : '111',
    say : function () {
    console.log(this.name)
    }
    }

    var fun = a.say;
    fun() //???
    a.say() //???

    var b = {
    name : '333',
    say : function (fun) {
    fun();
    }
    }
    b.say(a.say); //???
    b.say = a.say;
    b.say() //???
     

    2.

    var val = 1
    var obj = {
    val : 2,
    dbl : function() {
    var val = 45;
    console.log(this); //指向谁?
    this.val *= 2;
    console.log(this.val); //??
    console.log(val); //??
    }
    }
    var fn = obj.dbl
    fn()

    3.

    var x = 12;
    function test() {
    console.log(this.x)
    }
    test() //??

    4.

    var x = 12;
    function test() {
    console.log(this.x)
    }
    var obj={
    x:45,
    ss:test
    }
    obj.ss() //??

    5.

    var x = 12;
    function test() {
    console.log(this.x)
    }
    var obj = {
    x:45,
    ss:function(){
    console.log(this)
    test()
    }
    }
    obj.ss() //??

    6.

    var val = 1
    var obj = {
    val : 2,
    dbl : function() {
    // var val = 45;
    console.log(this); // 指向谁
    this.val *= 2;
    console.log(this.val); // ???
    console.log(val); // ???
    }
    }
    var ff = obj.dbl()

     
  • 相关阅读:
    Tomcat报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JFreeChartTest]]
    Md5 加密,加盐值
    ajax 分页 步骤和代码
    【每天学习一点点】numpy中的reshape中参数为-1
    smali文件语法参考
    google zxing 二维码扫描(android client分析)
    cygwin编译ffmpeg移植到android平台问题集锦
    Sequoyah 本机开发Native Development: Invalid path for NDK(路径无效) 解决方案
    优化模式--数据局部性
    程序猿,你也配吃10元的盒饭?
  • 原文地址:https://www.cnblogs.com/qinlinkun/p/10055177.html
Copyright © 2011-2022 走看看