100个最常问的JavaScript面试问答-第1部分

举报
海拥 发表于 2022/01/11 08:41:56 2022/01/11
【摘要】 🌊 作者主页:海拥🌊 简介:🏆CSDN全栈领域优质创作者、🥇HDZ核心组成员、🥈蝉联C站周榜前十🌊 粉丝福利:粉丝群 每周送6~9本书,不定期送各种小礼品,往期获奖公布JavaScript(JS)是一种具有一流功能的轻量级,解释性或即时编译的编程语言。尽管它是最著名的网页脚本语言,但许多非浏览器环境也使用它,例如Node.js,Apache CouchDB和Adobe Acrob...

🌊 作者主页:海拥
🌊 简介:🏆CSDN全栈领域优质创作者、🥇HDZ核心组成员、🥈蝉联C站周榜前十
🌊 粉丝福利:粉丝群 每周送6~9本书,不定期送各种小礼品,往期获奖公布

JavaScript(JS)是一种具有一流功能的轻量级,解释性或即时编译的编程语言。尽管它是最著名的网页脚本语言,但许多非浏览器环境也使用它,例如Node.js,Apache CouchDB和Adobe Acrobat。JavaScript是基于原型的,多范式,单线程的动态语言,支持面向对象,命令式和声明式(例如,函数式编程)样式。

我们将通过回答最常见的javascript面试问题来学习JavaScript。

问题1.什么是JavaScript?

答:JavaScript的高级定义是:

  • JavaScript是一种脚本语言,使您能够创建动态更新的内容,控制多媒体,动画图像以及几乎所有其他内容。
  • JavaScript是最流行的Web脚本语言,用于客户端和服务器端开发。
  • 支持面向对象的编程能力。
  • 可以将JavaScript代码插入HTML页面,Web浏览器可以理解和执行这些页面。

问题2.JavaScript中有哪些基本类型?或者解释JavaScript中各种数据类型?

答:JavaScript支持的数据类型有:

  • String
  • Number
  • Boolean
  • Symbol
  • BigInt
  • Null
  • Undefined

问题3.undefined和null在JavaScript中有什么区别?

答:

undefined 是默认值

  • 未分配特定值的变量。
  • 没有显式返回值的函数。例如
console.log(12);
  • 对象中不存在的属性。JavaScript引擎为我们分配了未定义的值。
 let _undefinedVar;
  const doNothing = () => {};
  const someObj = {
    ab : “Tech Talks”,
    bc : “With AK,
    cd : “Subscribe, Link in Bio”,
  };
  console.log(_undefinedVar); // undefined
  console.log(doNothing()); // undefined
  console.log(someObj[“d”]); // undefined

null

  • 一个不代表任何价值的价值。
  • 已明确定义为变量的值。
  • 例如,当fs.readFile方法没有引发错误时,我们将获得null值。
fs.readFile('path/to/file', (err,data) => {
   console.log(e); //prints null when no error occurred
   if(e){
     console.log(e);
   }
   console.log(data);
 }
);

比较null和undefined

  • 比较null,undefined时,当我们用==我们得到true,当我们用===我们得到false。
console.log(null == undefined); // logs true
console.log(null === undefined); // logs false

问题4. JavaScript中的转义字符是什么?

答:

  • 当有特殊字符工作时我们使用转义字符backslash (\),例如ampersands (&)apostrophes (‘)double quotes (“ ”)single quotes (‘ ’)
  • JavaScript中会显示转义字符中包含的所有内容。
  • JavaScript还提供了六个附加的转义符:
  • \ b –退格键
  • \ f –换页
  • \ n –换行符
  • \ r –回车
  • \ t –水平制表符
  • \v –垂直制表符
  • 无论如何,这些都不会在HTML或JS代码中执行。
  • 这些最初是为控制传真机,电传打字机和打字机而设计的。

问题5.什么是Logical AND (&&)逻辑与?

答:

  • && or Logical AND 在其操作数中找到第一个假表达式并返回它。
  • 如果找不到任何错误表达式,则返回最后一个表达式。
  • 它采用短路来防止不必要的工作。
   console.log(false && 10 && []); // false
   console.log(" " && true && 10); // 10

问题6.什么是Logical OR (||)逻辑或?

答:

  • || or Logical OR在其操作数中找到第一个真表达式并返回它。
  • 这也采用短路以防止不必要的工作。
console.log(null || 10 || undefined); //prints 10

function printChannelName(name) {
  var n = name || "Tech Talks With AK";
  console.log(n);
}

printChannelName(); //prints "Tech Talks With AK"

问题7.将字符串转换为数字的最快方法是什么?

答:

根据MDN文档Unary Plus (+)是将字符串转换为数字的最快方法,因为如果该值已经是数字,则对值不执行任何操作。

问题8. JavaScript中的Error Name values有哪些不同类型?

答:

JavaScript中有6个Error Name values

  • Eval Error – Eval错误,在eval()中遇到错误时抛出(较新的JS版本没有)
  • Range Error – 范围错误,使用超出指定范围的数字时生成
  • Reference Error – 参考错误,使用未声明的变量时起作用。
  • Syntax Error – 语法错误,使用错误的语法时,我们会收到此错误
  • Type Error – 尝试使用超出数据类型范围的值时引发此错误。
  • URI Error – URI错误,由于使用非法字符而产生

问题9.请解释Self Invoking Function

答:

  • 自动调用的功能称为Self Invoking Functions
  • 这些也称为Immediately Invoked Function Expressions(立即调用函数表达式)和Self Executing Anonymous Functions(自执行匿名功能)。
  • 一个Self Invoking Function的一般语法为:
// A function is defined and then invoked
(function_name () {
    return ()
}) ();
  • 但是,如果需要automatically在给出函数的地方执行某个函数,而不必再次调用它,则anonymous functions可以使用它。此类功能没有名称。这样的名字。

问题10.解释函数声明和函数表达式之间的差异

答:

函数声明和函数表达式可以根据以下四点来区分

  • Definition (定义)
  • Strict Mode (严格模式)
  • Time of Use (使用时间)
  • When to Use(何时使用)

定义

  • 在主代码流中声明为单独语句的函数称为function declaration(函数声明)。
  • 在表达式或其他语法构造内部创建函数时,将其称为function expression(函数表达式)。

严格模式

  • 当一个函数声明为within a code block in the Strict mode(在严格模式下的代码块内)时,它在该块内部的任何地方都可见,但在该块的外部则不可见。
  • 函数表达式不是这种情况。

使用时间

  • 当函数表达式已创建when the execution reaches it(当执行到达时)。从那时起函数表达式就可用。
  • 另一方面,函数声明can be called before the same is defined(可以在定义相同对象之前调用)时可用。

何时使用

  • 函数声明提供better readability(更好的可读性)和提供more freedom in organizing the code(组织代码的更多自由)。
  • 函数表达式通常是restricted to be used when there is a need for a conditional declaration(仅限在需要条件声明时使用)。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。