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(仅限在需要条件声明时使用)。