JavaScript中关于“这”的面试题

  介绍

这篇文章将为大家详细讲解有关JavaScript中关于“这”的面试题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在JavaScript中,<代码> 是函数调用上下文。正是由于<代码> 代码的行为很复杂,所以在JavaScript面试中,总是会问到有关,这<代码> 的问题。

做好的准备面试的方法是练习,所以本文针对<代码> 关键字整理了7个有趣的面试:

注意:下面的JavaScript代码段以非严格模式运行。

<强>目录:

<李>

问题1:变量vs属性

<李>

问题2:猫的名字

<李>

问题3:延迟输出

<李>

问题4:补全代码

<李>

问题5:问候与告别

<李>

问题6:棘手的长度

<李>

问题7:调用参数

相关教程推荐:JavaScript视频教程

<强>问题1:变量vs属性

以下代码会输出什么:

const  object =, {   ,,信息:& # 39;你好,,世界! & # 39;      getMessage(),{才能   ,,,const  message =, & # 39;你好,,地球! & # 39;;   ,,,return  this.message;   ,,}};      console.log (object.getMessage());,//,输出什么? ?
<强>答案:

输出:<代码> & # 39;你好,世界! & # 39;

<代码> object.getMessage() 是一个方法调用,这就是为什么方法中的<代码> 等于<代码> 对象的原因。

方法中还有一个变量声明<代码> const消息=& # 39;你好,地球! & # 39;> 。消息>

<强>问题2:猫的名字

以下代码会输出什么:

function 宠物(名字),{   this.name 才能=,名称;      this.getName 才能=,(),=祝辞,this.name;   }      const  cat =, new 宠物(& # 39;蓬松# 39;);      console.log (cat.getName());,//,输出什么? ?      {const  getName },=,猫;   console.log (getName());,,,,,//,输出什么? ?
<强>答案:

输出:<代码> & # 39;蓬松# 39;> & # 39;蓬松# 39;

当一个函数被当作构造函数调用时(<代码>新宠物(& # 39;蓬松# 39;)> 这等于构造的对象。

<代码> 宠物构造函数中的<代码> this.name=> 名称属性。

<代码>。getName=()=比;this.name> getName> 这等于外部作用域中的<代码> ,也就是构造函数<代码>宠物

调用<代码> cat.getName() 和<代码> getName() 会返回表达式<代码> this.name> & # 39;蓬松# 39;

<强>问题3:延迟输出

以下代码输出什么:

const  object =, {   ,,信息:& # 39;你好,,世界! & # 39;      logMessage才能(),{   ,,,console.log (this.message);,//,输出什么? ?   ,,}   };      setTimeout (object.logMessage, 1000);
<强>答案:

延迟1秒钟后,输出:<代码>定义

尽管,<代码> setTimeout() 函数使用<代码>对象。logMessage> 对象。logMessage>

在常规函数调用期间,这 等于全局对象,即浏览器环境中是<代码> 窗口。

这就是为什么<代码> logMessage 方法内的<代码> console.log (this.message) 输出<代码>窗口。消息> 未定义的

<强>问题4:补全代码

如何调用logMessage函数,让它输出<代码>“你好,世界!“> const  object =, {   ,,信息:& # 39;你好,,世界! & # 39;   };      function  logMessage (), {   console.log才能(this.message);,//,=祝辞,“你好,世界!“   }//,把你的代码写在这里.....

<强>答案:

至少有3种方式,可以做到:

const  object =, {   ,,信息:& # 39;你好,,世界! & # 39;   };      function  logMessage (), {   console.log才能(this.message);,//,=祝辞,& # 39;,你好,世界! & # 39;   }//,使用,func.call(),方法   logMessage.call(对象);//,使用,func.apply(),方法   logMessage.apply(对象);//,使用函数绑定   const  boundLogMessage =, logMessage.bind(对象);   boundLogMessage ();

JavaScript中关于“这”的面试题