几道面试题-考察JS的运用

1.定义一个方法,传入一个string类型的参数,然后将string的每个字符间加个空格返回,比如:

 spacify('hello world') // => 'h e l l o  w o r l d'    

    输出:

如何把这个方法放入String对象上面,例如:

    'hello world'.spacify();

输出:

2 ,参数 arguments

定义一个未定义的log方法作为开始。

    log('hello world')

我会让侯选人去定义log,然后它可以代理console.log的方法。正确的答案是下面几行代码,其实更好的侯选人会直接使用apply.

 

改变调用log的方式,传入多个参数。强调我传入参数的个数是不定的,可不止两个。

直接调用的话,会输出:

这种方法不能用,肯定需要换种方式调用:注意console是个对象,有多种方法,如log(最常用的),info,error,warn等,使用apply方法。

输出:

每一个log消息添加一个"(app)"的前辍,比如:

    '(app) hello world'

 输出:

 3.上下文

这里输出1,很容易。

在添加几句:

下面输出undefined。

因为func是在winodw的上下文中被执行的,所以会访问不到count属性。

怎么样保证User总是能访问到func的上下文,即返回正即的值:1,可以使用bind方法

如何兼容老的浏览器:可以使用apply方法





原文地址:https://www.cnblogs.com/xuzhudong/p/6557338.html