札记
札记

笔记

>

面试

>

JavaScript

什么是 JavaScript?

JavaScript 是一种高级编程语言,通常用于客户端 Web 开发。它是一种动态类型的语言,支持面向对象、函数式和事件驱动编程风格。JavaScript 最初由 Netscape 在 1995 年开发,它的设计目标是在 Web 浏览器中提供动态交互和响应。

JavaScript 支持哪些数据类型?

JavaScript 支持多种数据类型,包括原始数据类型和复杂数据类型。

原始数据类型包括数字(Number)、字符串(String)、布尔值(Boolean)、空值(null)、未定义(undefined)和 Symbol(符号)。

复杂数据类型包括对象(Object)和数组(Array)。

在 JavaScript 中,变量的数据类型是在运行时确定的,这意味着变量可以在程序执行期间更改其数据类型。此外,JavaScript 还支持动态类型,这意味着变量可以在不同的时间具有不同的数据类型。

== 和 === 的区别?

在 JavaScript 中,"=="和"==="运算符都用于比较两个值。

"=="运算符执行类型转换,使得它可以比较不同类型的值。因此,"=="运算符有时会导致意外的结果,特别是当它用于比较不同类型的值时。

"==="运算符执行严格比较,它不会执行类型转换。它只有在两个值具有相同类型且具有相同的值时才返回 true。这使得"==="运算符更可靠,因为它不会因为类型转换而产生错误的结果。

操作数 1操作数 2转换规则
NullUndefined相等
UndefinedNull相等
数字字符串将字符串转换为数字
字符串数字将数字转换为字符串
布尔值任何类型将布尔值转换为数字
对象原始类型将对象转换为原始类型的值
原始类型对象将原始类型的值转换为对象

当 JavaScript 执行类型转换时,它会优先将操作数转换为 number 类型,然后是 string 类型。

如果一个操作数是对象,则 JavaScript 会首先尝试调用对象的 valueOf()方法,如果 valueOf()方法返回原始类型值,则将该值用于比较。

如果 valueOf()方法返回对象,则 JavaScript 会尝试调用对象的 toString()方法,将其转换为字符串,然后再进行比较。

如果对象既没有 valueOf()方法,也没有 toString()方法,则会产生类型错误。

同样地,如果一个操作数是原始类型的值,而另一个操作数是 NaN,则比较结果为 false。

isNaN() 方法的用途是什么?

isNaN() 方法用于确定一个值是否为 NaN(非数字)。

如果给定的值不是数字,或者无法转换为数字,则该方法返回 true,否则返回 false。