JS
文章平均质量分 93
水果摊见
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[JS]面试八股文
答:闭包(Closure)是指“一个函数及其词法环境(即该函数被定义时的作用域)的组合”。简单来说,闭包让一个函数可以访问其外部作用域中的变量,即使在外部函数执行完毕后,这些变量依然可以被内部函数访问和操作在调用一个函数A时返回了一个函数B,并在B中访问了A中的变量,就会形成一个闭包,在A的执行上下文中会保存一个closure(A)的对象,并将B中访问的变量保存在堆中。闭包其实只是一个绑定了执行环境的函数。原创 2025-10-10 19:31:00 · 662 阅读 · 0 评论 -
【JS】面试八股文
答:在 JavaScript 中, 基本类型是没有属性和方法的, 但是为了便于操作基本类型的值, 在调用基本类型的属性或方法时 JavaScript 会在后台隐式地将基本类型的值转换为对象,如:在 访 问时 , JavaScript 将'abc'在 后 台 转 换 成,然后再访问其length属性。这就是包装类型。包装类型可以使用valueof进行开箱,转成基本类型。答:在当前作用域中查找所需变量, 但是该作用域没有这个变量, 那这个变量就是自由变量。原创 2024-11-26 23:17:31 · 969 阅读 · 0 评论 -
【JS】异步编程
异步编程的四种方式:1,回调函数:先执行程序的主要逻辑,将耗时的操作推迟执行。简单、易理解,但不利于代码维护2,事件监听:任务的执行不取决与代码的顺序,取决于事件是否发生。可绑定多个事件,每个事件可指定多个回调函数,有利于实现模块化,但流程会不清晰3,发布/订阅(观察者模式):有一个信号中心,某个信号执行完成后,向信号中心publish一个信号,其他任务则向信号中心订阅这个信号,从而知道自己什么时候开始执行。可通过查看消息中心,了解存在多少信号及每个信号的订阅者,从而监控程序的运行。原创 2024-11-14 10:00:00 · 1240 阅读 · 0 评论 -
【JS】事件循环
promise内部有resolved_和rejected_变量保存成功和失败的回调,进入时会判断rejected参数是否为函数,若是函数,错误时使用rejected处理错误;若不是,则错误时直接throw错误,一直传递到最后的捕获,若最后没有被捕获,则会报错。可通过监听事件捕获未处理的promise错误。定时器检测阶段(timers):本阶段执行timer的回调,即setTimeout里面的回调函数。原创 2024-11-13 16:23:04 · 1039 阅读 · 0 评论 -
【JS】对象与原型
在ECMAScript-262中,对象被定义为无序属性的集合,其属性可以包含基本值,对象或者函数。也就是说,在JavaScript中,对象无非就是由一些列无序的key-value对组成。其中value可以是基本值,对象或者函数。从技术角度来说, 函数永远不会“ 属于” 一个对象,它们只是对于相同函数对象的多个引用。无论返回值是什么类型, 每次访问对象的属性就是属性访问。如果属性访问返回的是一个函数, 那它也并不是一个“ 方法”。内置对象JavaScript。原创 2024-11-12 11:00:00 · 848 阅读 · 0 评论 -
【JS】类与继承
可以理解为在原型式继承的基础上包了一层特殊的壳,是原型式继承的加强版,即在产生了这个继承了父类的对象之后,为这个对象添加一些增强方法。函数内部,先创建了一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型,最后返回了这个临时类型的一个新实例。是指:在继承链的不同层次中,一个方法可以被定义多次,调用方法时回自动选择合适的定义(取决于使用了哪个类的实例)。(涉及到原型的动态性)对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。原创 2024-11-11 14:38:48 · 969 阅读 · 0 评论 -
【JS】this关键字的应用
他解释了为什么要使用动态函数,就如同我们上边所讲的那样,是为了保证length属性的合理值。中,描述了很多this的原理和应用,这一篇查缺补漏,还包括了一些古老用法,大概七八年前常考吧。同时,将第一个参数(context)以外的其他参数,作为提供给原函数的预设参数,这也是基本的“颗粒化(curring)”基础。就是当前组件实例,所以,为了方便将来的调用,往往在构造函数中将这个实例的特定函数绑定。标准语法的一部分,所以,虽然这种写法看起来很简洁,但并不推荐使用它。所实现的那样),就面临尴尬的局面。原创 2024-11-08 10:00:00 · 723 阅读 · 0 评论 -
【JS】内置类型的相关问题
实际上,使用常量和使用构造函数的效果是一样的(创建的值都是通过封装对象来包装)。类型的相关知识包含内置类型的判断、类型转换、基础类型的装箱与开箱等,面试时候作为基础知识考察。被称为不是数字的数字,用于指出数字类型中的错误情况,即“执行数学运算没有成功,这是失败后返回的结果”。中字符串是不可变的,这是指字符串的成员函数不会改变其原始值,而是创建并返回一个新的字符串。中的数字类型是基于 IEEE 754 标准来实现的,该标准通常也被称为“浮点数”。f方法,如果有并且返回基本类型值,就使用该值进行强制类型转换。原创 2024-11-09 10:00:00 · 886 阅读 · 0 评论 -
【JS】this关键字的相关问题
`this`提供了一种优雅的方式来隐式传递一个对象引用,API可以设计的更加简洁且易于复用。如果不用this的话,就必须给一些函数显式传入上下文对象。`this`使得函数可以自动引用合适的上下文对象。原创 2024-11-07 22:52:11 · 852 阅读 · 0 评论 -
【JS】声明提升与块级作用域
函数声明和变量声明都会被提升到最上面函数声明如果重复,以最后一个为准,变量声明如果跟函数名称重复,变量声明无效,以函数声明为准生成代码过程就是编译器把程序分解成词法单元(token),然后把词法单元解析成语法树(AST),再把语法树变成机器指令等待执行的过程。相比普通函数,JavaScript 函数的主要复杂性来自于它携带的“环境部分”。当然,发展到今天的 JavaScript,它所定义的环境部分,已经最初的定义复杂了很多。原创 2024-11-06 14:18:46 · 910 阅读 · 0 评论 -
【JS】作用域、执行上下文与闭包
作用域其实是一种规则,规定了一门语言在定义和运行的时候,变量有效的范围,以及如何找到这个变量。JS中分为全局作用域、函数作用域和块作用域,定义的变量可以在其相应的作用域中使用和复用;变量会在其定义时的作用域进行查找,而不是运行时的作用域进行查找。了解作用域的定义之后,来看看一个JS程序是如何应用作用域来运行起来的。在JS中,一个函数被调用时会生成执行上下文,并将其放入函数调用栈中。执行上下文包含了变量对象与作用域链,用于寻找变量的值,编译后会变成可执行代码。原创 2024-11-05 18:40:46 · 1185 阅读 · 0 评论 -
【JS】可选链运算符和空值合并运算符
`?.`运算符与`.`运算符类似,可以取对象深处的属性或方法,与`.`不同之处在于,当引用为`null`或`undefined`时,不会引起报错。原创 2024-03-29 15:55:50 · 670 阅读 · 0 评论
分享