首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2022秋招前端面试题(四)(附答案)

,该函数接受1-3个参数currentValue: 数组中正在处理的当前元素index(可选): 数组中正在处理的当前元素索引array(可选): forEach() 方法正在操作数组 thisArg...首先渲染前提是生成渲染树,所以 HTML 和 CSS 肯定会阻塞渲染。如果你想渲染越快,你越应该降低一开始需要渲染文件大小,并且扁平层级,优化选择器。...僵尸进程和孤儿进程是什么?孤儿进程:父进程退出了,而它一个或多个进程还在运行,那这些进程都会成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。...僵尸进程进程比父进程先结束,而父进程又没有释放进程占用资源,那么子进程进程描述符仍然保存在系统,这种进程称之为僵死进程。...产生死锁原因:(1)竞争资源产生死锁竞争资源之一指是竞争不可剥夺资源(例如:系统只有一台打印机,可供进程P1使用,假定P1已占用了打印机,若P2继续要求打印机打印将阻塞)产生死锁竞争资源另外一种资源指的是竞争临时资源

72420

python yield、yield f

理解yield from首先要理解三个概念: 调用方:指委派生成客户端代码 委派生成器:包含yield from 表达式生成器函数 生成器:从yield from表达式部分获取生成器 典型调用逻辑为:客户端代码(调用方)调用委派生成器对象,委派生成器在yield from表达式处阻塞,此时调用方与生成器之间双向通道打开,调用方可以直接把数据发给生成器,生成器把产出值发给调用方...委派生成器yield from语句自动处理生成器抛出StopIteration异常及附加在异常对象上返回值。代码示例如下: ?...注意:委派生成器执行结束时也会抛出StopIteration异常,这里使用了永久循环+全局变量(不推荐)方式避免委派生成器退出引发StopIteration异常且使客户端能够拿到生成器返回结果。...生成器StopIteration之外未处理异常会向上冒泡传给委派生成器处理,yield from表达式值是生成器终止时传给StopIteration异常第一个参数。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python内置异常类型全面汇总

    内置异常基类 在 Python ,所有异常必须为一个派生自 BaseException 实例。 通过子类化创建两个不相关异常类永远是不等效,既使它们具有相同名称。...下列异常主要被用作其他异常基类。 BaseException: 所有异常基类 Exception(重点掌握) 所有内置非系统退出类异常都派生自此类。 所有用户自定义异常也应当没打算自此类。...操作系统错误, | +-- BlockingIOError 操作将阻塞对象设置为非阻塞操作 | +-- ChildProcessError 进程操作失败 | +--...+-- TypeError 对类型无效操作 +-- ValueError 传入无效参数 | +-- UnicodeError Unicode 相关错误 |...用户代码生成警告 +-- FutureWarning 有关已弃用功能警告基类 +-- ImportWarning 模块导入时可能出错警告基类 +-- UnicodeWarning

    1.5K10

    web前端面试题及答案2023_2023-03-15

    实例函数情况有些特别,主要是在父组件通过 React ref API 获取组件实例,然后是通过实例调用组件实例函数。...这种方式在过去常见于 Modal 框显示与隐藏多层级间数据通信,有两种情况 。第一种是一个容器包含了多层组件,需要最底部组件与顶部组件进行通信。...进程和线程区别进程可以看做独立应用,线程不能资源:进程是cpu资源分配最小单位(是能拥有资源和独立运行最小单位);线程是cpu调度最小单位(线程是建立在进程基础上一次程序运行单位,一个进程可以有多个线程...通信方面:线程间可以通过直接共享同一进程资源,而进程通信需要借助 进程间通信。调度:进程切换比线程切换开销要大。...线程是CPU调度基本单位,线程切换不会引起进程切换,但某个进程线程切换到另一个进程线程时,会引起进程切换。

    67520

    JavaScript错误处理机制

    var err = new Error('出错了'); err.message // "出错了" 上面代码,我们调用Error构造函数,生成一个err实例。...is not a function 上面代码第二种情况,调用对象不存在方法,会抛出TypeError错误。...该错误类型已经不再在ES5出现了,只是为了保证与以前代码兼容,才继续保留。 以上这6种派生错误,连同原始Error对象,都是构造函数。开发者可以使用它们,人为生成错误对象实例。...只要代码包含finally子句,则无论try或catch语句块包含什么代码——甚至return语句,都不会阻止finally子句执行 function f() { try { console.log...仅当有try-catch语句捕获到被抛出值时,代码才会继续执行。 更详细解释为:当抛出异常时,javascript解释器会立即停止当前正在执行逻辑,并跳转到就近异常处理程序。

    1.9K30

    Python 协程详细用法和例子

    yield from 专门术语 委派生成器:包含 yield from 表达式生成器函数。 生成器:从 yield from 部分获取生成器。 图示 ? 解释: 1....委派生成器在 yield from 表达式处暂停时,调用方可以直接把数据发给生成器。 2. 生成器再把产出值发给调用方。 3....使用 send() 方法发给委派生成值都直接传给生成器。如果发送值是None,那么会调用生成 next() 方法。如果发送值不是 None,那么会调用生成 send() 方法。...协程是 asyncio 包基础构建。通过仿真系统能说明如何使用协程代替线程实现并发活动。 在仿真领域,进程这个术语指代模型某个实体活动,与操作系统进程无关。...仿真系统一个进程可以使用操作系统一个进程实现,但是通常会使用一个线程或一个协程实现。

    1.2K10

    拿到大厂前端offer前端开发是怎么回答面试题

    管道就是操作系统在内核开辟一段缓冲区,进程1可以将需要交互数据拷贝到这段缓冲区,进程2就可以读取了。...用户可以在消息队列添加消息、读取消息等。消息队列提供了一种从一个进程向另一个进程发送一个数据块方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型数据结构。...如果频繁发生进程通信行为,那么进程需要频繁地读取队列数据到内存,相当于间接地从一个进程拷贝到另一个进程,这需要花费时间。...操作系统通过信号来通知进程系统中发生了某种预先规定好事件(一组事件一个),它也是用户进程之间通信和同步一种原始机制。...== "function") { throw new TypeError(callback + ' is not a function') } const O = Object

    60030

    Python函数基础回顾

    # 调用方法 my_function(5, 6, z=0.7) my_function(3.14, 7, 3.5) my_function(10, 20) 函数参数主要限制在于:关键字参数必须位于位置参数...它仅由单条语句组成,该语句结果就是返回值。它是通过lambda关键字定义,这个关键字没有别的含义,仅仅是说“我们正在声明是一个匿名函数”。...例如,假设我们有一个执行两数相加简单函数: def add_numbers(x, y): return x + y 通过这个函数,我们可以派生出一个新只有一个参数函数——add_five,...能以一种一致方式对序列进行迭代(比如列表对象或文件行)是Python一个重要特点。...要创建一个生成器,只需将函数return替换为yeild即可: def squares(n=10): print('Generating squares from 1 to {0}'.format

    35710

    the-super-tiny-compiler源码解析

    visitor层,遍历过程按词法单元类型调用对应enter/exit方法即可,算是个小技巧 改完AST,就到了最后代码生成环节,遍历收集,把AST还原成代码串就好了 三.实现 词法分析 // 接受代码字符串...input function tokenizer(input) { // 当前正在处理字符索引 let current = 0; // 输出结果集合,存放词法单元 let tokens = [...parser(tokens) { // 当前正在处理token索引 let current = 0; // 递归遍历(因为函数调用允许嵌套),把token转成AST节点 function walk..._context = expression.arguments; 这样就知道当前正在访问旧节点对应新节点应该挂到新树哪个位置了,例如: // 旧树父节点身上挂着对应新树节点孩子数组,把新节点填进去...更合理做法是以非侵入方式记录新树当前活跃节点容器,由于函数调用允许嵌套,需要用栈结构来记录: // 用额外数据结构维持新旧AST联系 let stack = [newAst.body]; function

    1.1K40

    Multiprocessing package - torch.multiprocessing

    由于api相似性,我们不记录这个包大部分内容,我们建议参考原始模块中非常好文档。Warning如果主进程突然退出(例如,由于传入信号),Python多处理有时无法清理其进程。...Sharing CUDA tensors进程之间共享CUDA张量仅在python3受支持,使用派生或forkserver启动方法。...Python 2多处理只能使用fork创建进程,而且CUDA运行时不支持它。与CPU张量不同,发送过程需要保持原始张量,只要接收过程保留张量副本。...如果其中一个进程以非零退出状态退出,则其他进程将被终止,并引发一个异常,原因是终止。在进程捕获异常情况下,将转发该异常并将其回溯包含在父进程引发异常。...Parameters fn (function) – 函数被称为派生进程入口点。此函数必须在模块顶层定义,以便对其进行pickle和派生。这是多处理强加要求。

    2.6K10

    多线程 VS 多进程(三)

    线程替代方案 subprocess 完全跳过线程,使用进程派生进程主要替代方案 python2.4后引入 multiprocessiong 使用threading接口派生,使用进程 允许为多核或者多...cpu派生进程,接口跟threading非常相似 python2.6后引入 concurrent.futures - 新异步执行模块 - 任务级别的操作 - python3.2...后引入多进程 进程间通讯(InterprocessCommunication, IPC) 进程之间无任何共享状态 进程创建 直接生成Process实例对象,案例19 ```python...:", os.getppid()) # 得到本身进程id print("process id:", os.getpid()) def f(name): info('function...# 在实践,这可能是生成输出或通过一些其他地方生产出来 sequence = [1, 2, 3, 4] producer(sequence, q) # 等待所有项被处理

    345107

    全方位了解协程概念

    而协程是运行子程序过程“中断”,转而执行其他子程序,再在适当时候返回来接着运行。 二、协程与线程区别 协程相比于线程优势: 1、协程效率比线程高。...PS:如果想使用多CPU的话,可以使用进程+协程。 三、协程实现 协程是通过yield实现,所以协程是生成器,可以通过 next 调用。...,委派生成器在yield from表达式处暂停时,调用方通过send()方法把数据传给生成器,生成器再把产出值发送给调用方,生成器返回后,会抛出StopIteration异常,并把返回值添加到异常...委派生成器相当于管道,所以可以把任意个委派生成器连起来:委派生成器连接生成器是一个委派生成器,以此类推,直到遇到一个使用yield生成器或可迭代对象。...from 作用是在生成器里调用生成器,可以优化一个嵌套 for 循环等复杂代码 7、协程有四种状态:GEN_CREATED(等待开始执行)、GEN_RUNNING(解释器正在执行)、GEN_SUSPENDED

    77330

    重学JS-1.1-知识点:严格模式“use strict”

    本系列以廖雪峰《JavaScript教程》和《现代 JavaScript 教程》两个电子书作为线索,对其中需要进一步了解知识,会阅读更多文章,并作为扩展知识记录下来。...新手建议先阅读上面两个电子书,本系列更适合用来复习旧知识和查漏补缺。 "use strict"出现原因 ES旧标准,存在不完善特性,ES5规范对这些不完善特性进行了修改。...简单来说,严格模式作用就是: 消除ES旧标准不合理特性。 保证代码安全和准确。 利于JS引擎执行优化,提升运行速度。...x; } eval不再为上层范围引入新变量 在 eval 执行严格模式代码下,变量行为与严格模式下非 eval 执行代码变量相同。...() { return arguments.callee; }; //正常模式下,arguments.callee 指向当前正在执行函数,即f本身。

    82720

    【操作】Cobalt Strike 权限维持和团队服务器之间会话传递

    第一步:加载 cna 脚本 Cobalt Strike → Script Manager → Load → Erebus Main.cna 第二步:生成 Payload 可执行文件 Attacks...上,此进程除了本身一个进程,一般不会有别的进程。...使用 ppid 命令将 chrome.exe 设为父进程: 使用 chrome 64位进程来作为临时进程用于派生会话: 注:使用 spawn命令来为监听器派生会话,spawn 命令接受两个参数...List 发现此会话进程的确是作为 chrome.exe 进程运行,但是将新派生会话到 chrome.exe 进程失败了,而是开了一个默认 rundll32.exe。...因而其实使用是 chrome.exe 父进程派生会话,而没有使用其进程派生会话,所以最终新会话开在了 spawnto 命令默认使用 rundll32.exe 程序上。

    1.4K20

    2022秋招前端面试题(六)(附答案)

    事件流顺序执行事件处理程序:父级捕获级捕获级冒泡父级冒泡且当事件处于目标阶段时,事件调用顺序决定于绑定事件书写顺序,按上面的例子为,先调用冒泡阶段事件处理程序,再调用捕获阶段事件处理程序。...window 传播,遇到注册冒泡事件会触发事件触发一般来说会按照上面的顺序进行,但是也有特例,如果给一个 body 节点同时注册冒泡和捕获事件,事件触发会按照注册顺序执行。...,该函数接受1-3个参数currentValue: 数组中正在处理的当前元素index(可选): 数组中正在处理的当前元素索引array(可选): forEach() 方法正在操作数组 thisArg...== "function") { throw new TypeError(callback + 'is not a function'); } // 创建一个新 Object...:[ /* 0 */ function (module, exports, require) { //... }]复制代码这样打包方式生成代码明显比之前少多了。

    1K20

    总结一下最近前端面试被问到题目吧

    进程之前通信方式(1)管道通信管道是一种最基本进程间通信机制。管道就是操作系统在内核开辟一段缓冲区,进程1可以将需要交互数据拷贝到这段缓冲区,进程2就可以读取了。...如果频繁发生进程通信行为,那么进程需要频繁地读取队列数据到内存,相当于间接地从一个进程拷贝到另一个进程,这需要花费时间。...cpu调度最小单位(线程是建立在进程基础上一次程序运行单位,一个进程可以有多个线程)。...通信方面:线程间可以通过直接共享同一进程资源,而进程通信需要借助 进程间通信。调度:进程切换比线程切换开销要大。...线程是CPU调度基本单位,线程切换不会引起进程切换,但某个进程线程切换到另一个进程线程时,会引起进程切换。

    43740
    领券