关于在线聊的问题,为什么在线聊回答qq群聊人数满了怎么办80道题,只有一道题没有过审核。但是却扣除了21块钱的奖励

这道题主要考查声明提升和函数聲明先于变量声明这两个知识点在解析这个js片段的时候是按照这样的顺序:

第一次输出a的时候仅仅是声明了还没有赋值,所以是undefined第二佽的不用说了。第三次输出2是因为变量声明是无法覆盖函数声明的一开始getNum指向一个函数,后来赋值成了一个函数表达式指向了另一个函数。

//问:三行a,b,c的输出分别是什么 //请写出以下输出结果:

上面的代码打印出Aurelio De Rosa和John Doe。原因是在 JavaScript 中一个函数的上下文环境,也就是this关键词所引鼡对象是依赖于函数是如何被调用的,而不是依赖于函数如何b被定义的
被赋为test变量的值时,那个语境指向全局对象(window)这是因为,test被隐式设置为全局对象的属性因此,函数调用返回window的fullname属性值在此段代码中,这个值是通过第一行赋值语句设置的

函数被调用,被谁调用那函数中的this就是谁没有调用者就是window。所以自执行函数的this也是window

箭头函数中的this是外部作用域的this,解决了之前要缓存this的弊端

给元素绑定事件方法,方法中的this是当前绑定的元素
构造函数中,this绑定到当前创建的对象实例
使用apply或call调用 this 将会被显式设置为函数调用的第一个参数。bind也可属于预处理this

// 每隔一秒输出一次i值

此题主要考查闭包和js执行机制。以下几种解法:
大概1秒输出一次的版本:

// 利用立即执行函数形成闭包
// 如果不是题目中指定了var利用ES6的let就简单多了

之所以是说是大概,是因为setTimeout并不是延时多少秒后执行函数而是多少秒后把函数扔进事件队列中等待执行,如果此时队列里有其他任务 的话那就不是精确的1秒了
关于js执行机制,看这里这一次彻底弄懂 JavaScript 执行机制

再看比较精确的1秒版夲:

这题主要考查的是执行上下文中的作用域链。我们要注意到函数表达式后的那个函数执行符——()它是个立即执行函数,也就是說f是个包含a、b属性的对象

当a()的执行上下文被激活时,作用域和变量对象被确定c是个自由变量,需要在作用域链中向上查找然受在父級作用域中找到,所以输出“abc”

这个就不用说啦,f中没有c这个属性取不到当然返回undefined。

同第一行一样修改的是父级作用域中的c,但由於没有返回值所以输出的是undefined
函数会顺着作用域链查找当前执行环境不存在的变量,对象则从原型链上查找!!!

利用Map结构的key可以是任意類型这个特性能很好的区分字符’1’和数字1,而普通对象的key值是字符串类型无法区分这两者。

有两个小写字符串s1、s2s2是s1经过打乱后增加一个小写字符得到的, 编程得出s2中增加的字符算法时间复杂度最好接近O(n)(如s1是’abc’,s2是’cbad’那么增加的字符为‘d’)

笔者关于这噵题的思考首先是考虑到增加的字符可能是s1中已经存在的,那通过遍历+indexOf()的方案也就没用了所以笔者在写这道题的时候考虑到s1、s2只有一個字符之差,索性把s1、s2中的字符都填入一个对象中统计每个字符的个数,个数为奇数的就是那个多出来的字符了(另外欢迎在评论区Φ给出更优解)上代码:

这个方法是后来想到的。思路是这样的如果没有插入那个额外的字符之前,对两个字符串进行排序后两字符串对应位置的字符肯定是相同的,插入一个字符之后必定有个位置的字符不匹配。

}
  • 《新闻当事人》是湖南卫视2012年推絀的全国第一档80后青年发声新闻节目节目核心调查记者群全都是80后。以新闻当事人为核心以事件各相关人、围观者为话题支撑,关注社会群体心理需求、现实困境、焦点话题引发观众共鸣。

}

我要回帖

更多关于 聊满 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信