100个最常问的JavaScript面试问答-第1部分
【摘要】 🌊 作者主页:海拥🌊 简介:🏆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 (&&)逻辑与?
答:
&&
orLogical AND
在其操作数中找到第一个假表达式并返回它。- 如果找不到任何错误表达式,则返回最后一个表达式。
- 它采用短路来防止不必要的工作。
console.log(false && 10 && []); // false
console.log(" " && true && 10); // 10
问题6.什么是Logical OR (||)逻辑或?
答:
||
orLogical 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)