加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Javascript面试的完美指南(开发者视角)

发布时间:2019-02-22 09:05:56 所属栏目:建站 来源:前端小智
导读:副标题#e# 为了说明 JS 面试的复杂性,首先,请尝试给出以下结果: onsole.log(2.0==2==newBoolean(true)==1) 十有八九的会给出false, 其实运行结果是true,原因请看 这里。 1) 理解 JS 函数 函数是 JavaScript 的精华,是 JS 一等公民。JS 函数不仅仅是一

如果有人问你这个问题,编写一个输入一个字符串并逐次返回字符。 如果给出了新字符串,则应该替换旧字符串,类似简单的一个生成器。

  1. function generator(input) { 
  2.   var index = 0; 
  3.   return { 
  4.     next: function() { 
  5.       if (index < input.lenght) { 
  6.         return input[index -1]; 
  7.       } 
  8.       return ""; 
  9.     } 
  10.   } 
  11. }  

执行如下:

  1. var mygenerator = generator("boomerang");  
  2. mygenerator.next(); // returns "b"  
  3. mygenerator.next() // returns "o"  
  4. mygenerator = generator("toon");  
  5. mygenerator.next(); // returns "t" 

在这里,作用域扮演着重要的角色。闭包是返回另一个函数并携带数据的函数。上面的字符串生成器适用于闭包。index 在多个函数调用之间保留,定义的内部函数可以访问在父函数中定义的变量。这是一个不同的作用域。如果在第二级函数中再定义一个函数,它可以访问所有父级变量。

4) this (全局域、函数域、对象域)

在 JavaScript 中,我们总是用函数和对象编写代码, 如果使用浏览器,则在全局上下文中它引用 window 对象。 我的意思是,如果你现在打开浏览器控制台并输入以下代码,输出结果为 true。

  1. this === window; 

当程序的上下文和作用域发生变化时,this 也会发生相应的变化。现在观察 this 在一个局部上下文中:

  1. function Foo(){ 
  2.   console.log(this.a); 
  3. var food = {a: "Magical this"}; 
  4. Foo.call(food); // food is this 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读