当前位置: 首页 > news >正文

前端知识点(面试可看) —— JS

摘要

马上就要毕业啦,没有参加2023年的秋招,准备在最近开始找全职或者实习工作,然后也马上过年了,总结和理一下自己的知识要点,参加2024年的春招。

1. JS的执行流程

  1. 浏览器的V8引擎收到到执行的JS代码
  2. V8结构化这段代码,生成AST(抽象语法树),同时生成相关作用域
  3. 生成字节码(介于AST和机器码之间)
  4. 解释器,按照顺序执行字节码,并输出执行结果

JS代码流程:先编译后执行

2. 基本数据类型

  • undefined
  • null
  • Boolean
  • String
  • Number
  • Symbol
  • BigInt
  • Object:只有他存在堆里面

3. 判断数据类型的方式(TTIC)

  1. typeof:判断基本数据类型,判断null时,会返回object
  2. Object.prototype.toString.call(xx):返回一个[object 数据类型]
  3. instanceof:A instanceof B :判断A和B是否有血缘关系,不仅仅根据父子关系。
  4. constructor

4. ES6的新特性

  1. constlet
  2. 解构赋值
  3. 模板字符串
  4. 函数的扩展:默认值、rest参数、函头函数
  5. 数组的拓展:Array.from()将类数组转换为数组、find()、findIndex()、entries()、keys()、values(),includes()
  6. 对象扩展:属性名可以用表达式、Object.assign()、Object.keys()、Object.values()、Object.entries()
  7. Symbol
  8. Set、Map
  9. Promise
  10. Iterator和for…of
  11. Generator 和 async await

箭头函数和普通函数

  1. 语法更加简洁清晰
  2. 箭头函数没有 prototype、所以箭头函数没有this
  3. 箭头函数不会创建自己的this,会自动继承最外层的this
  4. call | apply | bind 无法改变箭头指向
  5. 箭头函数不能作为构造函数
  6. 箭头函数不绑定arguments,用rest(…)取代,来访问箭头函数列表
  7. 箭头函数不用用作Generator,不能使用yield关键字

5. Promise 和 async/await

Promise

Promise对象为了解决回调地狱而提出,不是新的语法功能,而是一种新的写法,允许将回调函数嵌套,改成链式调用

流程:

  1. Promise 接受一个executor(),在new的时候立刻执行
  2. executor()内部的异步任务被放入宏\微任务,等待执行
  3. then,收集\失败回调
  4. executor的异步任务被执行,触发resolve\reject,从失败和成功队列中取出依次执行。

其实是设计模式中的一种观察者模式

  1. 收集依赖 (then收集)
  2. 触发通知 (触发resolve)
  3. 取出依赖执行 ( resolve执行)

async await

是对Generator(生成器)的封装,是个语法糖

*/yieldasync/await的区别:

  1. async/await自带执行器,不需要next()就能下一步
  2. async 返回的是Promise对象,而Generator返回的是生成器对象
  3. await能够返回Promise的 reject/resolve的值

注意:无论await后面跟的什么,后面的代码都会被阻塞

和Promise区别

Promise解决了回调地狱,但是他的语法问题纵向发展形成了一个回调链,遇到复杂的业务场景,这样的语法显然是不美观的。
async await看起来简洁一些,看起来像同步代码,其实它出现的意义就是提供异步的效果
两者其实都是非阻塞

6. Generator

核心: 保存上下文,函数在真正意义中没有被挂起,每一次yield,其实都执行了一边生成器函数、在这个过程中用了一个context存储上下文,每次执行生成器函数的时候,都可以从上一个执行结果开始执行

用babel编译后生成regeneratorRuntime

  1. mark()方法为生成器函数绑定了一系列原型
  2. wrap() 相当于给Generator增加一个_invoke 方法

7. 迭代器

模式: 可以把有些结构称为可迭代对象,它们正式实现了Iterable接口,可以通过迭代器消费,是按需创建的一次性对象,每个迭代器都会关联一个可迭代对象

协议: 可迭代协议需要具备两种能力

  1. 支持迭代的自我识别能力
  2. 创建实现Iterator接口的对象的能力

一次性使用对象,用于迭代与其关联的可迭代对象

迭代器api提供一个next()方法,这个方法会返回两个属性:

  1. done:是否还能取得下个值
  2. value:可迭代对象下一个值

默认实现了Iterable的类型

  1. String
  2. Array
  3. Map
  4. Set
  5. arguments
  6. NodeList等Dom集合类型

接受可迭代对象的原生语言特性包括

  1. for of
  2. 数组结构
  3. 扩展操作符
  4. Array.from()
  5. Set
  6. Map
  7. Promise.all()
  8. Promise.race()
  9. yield

8. 设计模式

三类:(C5S7B11)

  1. 创建型模式:五种: 工厂方法、抽象工厂、单例、建造则、原型
  2. **结构型模式:七种:**适配器、装饰器、代理、外观、桥接、组合、享元
  3. **行为型模式:十一种:**策略、模板方法、观察者(发布订阅)、迭代子、责任链、命令、备忘录、状态、访问者、中介者、模板方法、解释器

9. WebGL

Canvas 是画布一般可以获取2D上下文3D上下文3D上下文一般就是WebGL,当然WebGL也能用于2D绘制,并且WebGL提供硬件渲染加速,性能更好。但是支持性不是特别好,在不支持的情况下最好还是用Canvas,可以用一些兜底的库,如threehs、PIXI

10. CommonJS和ES6 Module

首先,CommonJS同步加载ES6异步加载,前者主要用于Node.js服务端编程,模块文件一般已经存在于本地硬盘,所以记载比较快。而后者是异步加载所以适用于浏览器,不会造成堵塞。

其次,CommonJS模块输出的是一个值的拷贝,也就是说一旦输出一个值,模块内部变化就影响不到这个值ES6模块输出的是值的引用,V8引擎在对JS进行静态分析的时候,遇到import命令,会等到脚本真正执行时,才回到被加载模块中取值。

最后,前者是运行时加载,后者是编译时输出接口

注意:CommonJS不适用于浏览器

11. 声明变量的方式

ES5

  • var
  • function

ES6

  • let
  • const
  • import
  • class

12. 函数声明

  • function fn(…args) {}
  • var fn = function(…args){}
  • new Function(‘x’,‘y’,‘return x+y’)

13. Object/Map/WeakMap区别

MapES6提供的一种新特性,是一种键不局限于字符串的一种键值对集合,对于Object来说他的键只能使用字符串。

WeakMap结构和Map有点类似,但是有两点区别:

  1. 他只接受对象为键(null除外)
  2. 键名所指向的对象,不计入垃圾回收机制

总之,WeakMap专用场合就是,它的键所对应的对象,可能会在将来消失,WeakMap结构有助于防止内存泄露

14. JS深浅复制

浅复制

  1. 扩展运算符
  2. Object.assign()
  3. Object,getOwnPropertyDescriptors()+Object.defineProperties()

深复制

  1. 通过嵌套扩展运算符
  2. 使用JSON
  3. 手动实现(FHT)
    1. 利用for-in对对象的属性进行遍历(自身属性+继承属性)
    2. source.hasOwnProperty(i)判断是否非继承可枚举类型
    3. typoeof source[i]==='object判断值的类型,如果是对象,递归处理

15. 闭包

闭包就是在JS种,根据语法作用域规则,内部函数总是可以访问到其外部函数中声明的变量,当通过调用一个外部函数返回一个内部函数后,即使该外部函数已经执行结束了。但是内部函数引用外部函数的变量依然保存在内存中,就把这些变量的集合成为闭包。

16. Event Loop

也就是事件循环,会不听从微/宏任务队列中取出对应任务的循环函数。在某种情况中,你可以把它称为一个永动机。这些它取出的任务并将其推送到调用栈种执行,主要有四个主要步骤:

  1. 执行Scirpt:用同步的方式执行script,直到调用栈空才停下来。(还会执行预编译操作。如:变量提升)
  2. 执行一个宏任务:挑选最老的到调用栈中执行,直到调用栈为空
  3. 执行所有微任务:挑选最老的到调用栈中执行,直到调用栈为空。(但是,继续从微任务队列种获取最老的执行。重复)
  4. UI渲染:然后跳到第二步,挑选宏任务执行。

Event Loop 单次迭代过程被称为tick。

宏任务 (Task Queue)

也被称为{回调队列| Callback queue},调用栈适用于跟踪正在被执行函数,宏任务则是跟踪将要被执行函数。
事件循环不停的运行着,并且按照一定规则从宏任务队列中不停的去除对象。

宏任务是一个FIFO,存储的宏任务会被事件循环探查到。记得!这些人物都是阻塞的。

微任务(Microtask Queue)

和宏任务一样,他也是FIFO,同样会被探查到。不同的地方是,微任务是在一个宏任务完成后,在UI渲染之前被触发。它是专门处理ES6中Promise回调的。

17. GC

也就是垃圾回收机制

如何实现(算法)

  1. 通过GC Root 标记空间中活动对象非活动对象
    1. V8 采用可访问性算法,来判断对象是否为活动对象
    2. 是将一些GC Root 作为初始存活的对象的集合
    3. GC Root出发然后遍历所有对象
    4. 通过遍历所得到的对象,认为该对象是否为活动对象
    5. 通过遍历所得到的对象,认为该对象是否为非活动对象
    6. 浏览器环境中,GC Root包括1.全局的window对象 2. 文档DOM树 3.存放栈上变量
  2. 回收非活动对象所占据的内存
  3. 内存整理

代际假说

是GC领域中的一个重要术语

两个特点:

  1. 大部分对象都是朝生夕死的
  2. 不死的对象,会获得很久

堆空间

V8会把分为两个部分

  1. 新生代
    • 存放的是生存时间短的
    • 1~8M容量
    • 副垃圾回收器,负责新生代的垃圾回收
  2. 老生代
    • 存放时间久的对象
    • 主垃圾回收器,负责老生代的垃圾回收

副垃圾回收器

Scavenge算法来处理,九十八新生代区域分为两个区域:对象区域空闲区域
当对象区域要被写满的时候,就做一次垃圾清理操作:

  1. 首先对对象区域的垃圾做标记
  2. 然后把这些对象复制一份然后,有序的丢到空闲区域
  3. 然后复制结束后,两者角色互换

副垃圾回收器采用对象晋升策略:移动那些经过两次垃圾回收依然还活着的对象到老生代中

主垃圾回收器

负责老生代的垃圾回收,除了新生代晋升的,大的对象也会直接被存到老生代中,有两个特点:

  1. 活得久
  2. 大得很

标记|清除 算法

  1. 标记过程:从根元素遍历,能够达到的为活动对象,没有达到的为非活动对象
  2. 垃圾清理过程:主回收器直接把非活动对象清除

标记 - 整理

  1. 标记可回收
  2. 清除:不是对可回收对象清理,二十让所有的活动对象向一端移动,清理掉除了这里以外的内存。

18. 内存问题

内存泄漏: 不需要的内存数据但是依然被其他对象引用着。

常见的: 函数中声明变量时没有用var、let、const导致this指向window,直接赋值到window对象中。

19. 作用域

3大类:

  1. 声明式:函数作用域、module作用域
  2. 对象
  3. 全局

声明式作用域

通过var/const/let/class/module/import/function生成,常说的ES6块级作用域和函数作用域都属于函数式作用域

全局作用域

全局对象使用两个ER管理:

  1. 对象ER:将变量存储在全局对象中,顶层作用域下,varfunction声明的变量被绑定在对象ER中(浏览器为window
  2. 声明式ER:使用内部对象来存储,顶层作用于下,const/let/class声明的变量被绑定在声明ER中

两者存在相同名的变量时,声明式ER优先级更高。

20. this

this是和上下文绑定的,主要分为三种:全局执行、函数执行、eval执行

全局

一般指向window对象,这是this和作用域链唯一焦点,作用域低端包含window对象

函数

默认情况调用一个函数,他的上下文也是指向window

通过call/bind/apply设置上下文:

let bar = {myName : " mango ",test1 : 1
}
function foo(){this.myName = " test "
}
foo.call(bar)
console.log(bar) // mango
console.log(myName)  // not defined

this的设计缺陷

嵌套函数中,内部函数的this不会从外层函数中继承
解决方法:

  1. 将this转化为作用域体系。
  2. 使用ES6中的this函数,他不会创建自己的上下文,所以取决于他的外部函数。

普通函数中的 this 默认指向全局对象 window

可以设置严格模式,函数上下文都是undefined

21. 图片懒加载

通过HTML提供的data-属性来嵌入自定义数据。
然后利用offsetTop计算位置。当图片出现在可视区域的时候,加载图片,也就是给img标签设置src

22. 数组常用方法

改变原数组

  1. push
  2. pop
  3. shift
  4. unshift
  5. reverse
  6. sort
  7. splice

不会改变

  1. concat
  2. join
  3. slice
  4. filter
  5. reduce
  6. find
  7. findIndex

相关文章:

前端知识点(面试可看) —— JS

摘要 马上就要毕业啦,没有参加2023年的秋招,准备在最近开始找全职或者实习工作,然后也马上过年了,总结和理一下自己的知识要点,参加2024年的春招。 1. JS的执行流程 浏览器的V8引擎收到到执行的JS代码V8结构化这段代…...

CSRF总结

CSRF 文章目录 CSRF漏洞原理漏洞危害漏洞防护CSRF攻击流程CSRF和XSS的区别CSRF漏洞挖掘及利用 CSRF 跨站点请求伪造(CSRF)攻击者会诱导受害者点击事先伪造好的url或者链接,点击后,攻击者就可以盗用你的身份,以你的身份…...

降维算法的简单介绍

降维算法 降维算法: 通过减少数据的维度,如主成分分析和 t-分布邻域嵌入等。 降维通俗的讲,是通过减少数据的维度来处理高维数据的过程。降维算法有助于消除数据中的冗余信息,减少噪声,并提高计算效率。以下是一些常见…...

k8s的声明式资源管理

在k8s当中支持两种声明资源的方式: 1、 yaml格式:主要用于和管理资源对象 2、 json格式:主要用于在API接口之间进行消息传递 声明式管理方法(yaml)文件 1、 适合对资源的修改操作 2、 声明式管理依赖于yaml文件,所有的内容都…...

Git | tag相关命令

语法命令 git tag -h usage: git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]<tagname> [<head>]or: git tag -d <tagname>...or: git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit&g…...

【Java期末】学生成绩管理系统

诚接计算机专业编程任务(C语言、C、Python、Java、HTML、JavaScript、Vue等)10/15R&#xff0c;如有需要请私信我&#xff0c;或者加我的企鹅号&#xff1a;1404293476 本文资源下载地址&#xff1a;https://download.csdn.net/download/weixin_47040861/88697244 —————…...

顶顶通呼叫中心中间件通过队列外呼拨打另一个sip并且放音(mod_cti基于FreeSWITCH)

介绍 顶顶通呼叫中心中间件通过队列外呼拨打另一个sip并且放音 一、添加acl 打开ccadmin->点击配置文件->点击acl.conf->在</list>后面添加一条图中的信息->muqi是我自己设置的名字你们可以修改为自己需要的名字->添加好了点击提交XML->在运维调试点…...

SQL Server从0到1——报错注入

报错注入分为三类&#xff1a;隐式转换&#xff0c;和显示转换&#xff0c;declare函数 隐式转换&#xff1a; 原理&#xff1a;将不同数据类型的数据进行转换或对比 select * from test.dbo.users where (select user)>0 #对比 select * from test.dbo.users where ((sel…...

【python高级用法】线程

前言 Python通过标准库的 threading 模块来管理线程。这个模块提供了很多不错的特性&#xff0c;让线程变得无比简单。实际上&#xff0c;线程模块提供了几种同时运行的机制&#xff0c;实现起来非常简单。 线程模块 线程对象Lock对象RLock对象信号对象条件对象事件对象 简单…...

分布式高级知识点

分布式一致性算法: Paxos Paxos 是一种分布式一致性算法,用于在分布式系统中达成共识。它可以保证,即使在存在节点故障的情况下,系统也能就某个值达成一致。 Paxos 算法的基本思想是,首先选出一个协调者(leader)。协调者负责向其他节点发送提案(proposal)。其他节点收…...

Linux 命令之 dpkg 的简单使用

查询已安装的软件包及其依赖关系 dpkg -s name...

Ubuntu20.04服务器使用教程(安装教程、常用命令、故障排查)持续更新中.....

安装教程&#xff08;系统、NVIDIA驱动、CUDA、CUDNN、Pytorch、Timeshift、ToDesk&#xff09; 制作U盘启动盘&#xff0c;并安装系统 在MSDN i tell you下载Ubuntu20.04 Desktop 版本&#xff0c;并使用Rufus制作UEFI启动盘&#xff0c;参考UEFI安装Ubuntu使用GPTUEFI模式安…...

访问学者J1签证的申请流程

访问学者J1签证是许多人前往美国进行学术研究和文化交流的重要途径之一。申请J1签证需要经过一系列步骤和程序&#xff0c;让知识人网小编带大家来了解一下申请流程吧。 首先&#xff0c;申请者需要确认自己符合J1签证的资格要求。这包括被美国的赞助机构或组织接受&#xff0c…...

51单片机(STC8)-- GPIO输入输出

文章目录 I/O口相关寄存器端口数据寄存器端口模式配置寄存器&#xff08;PxM0&#xff0c;PxM1&#xff09;端口上拉电阻控制寄存器(PxPU)关于I/O的注意事项 配置I/O口I/O设置demoI/O端口模式LED控制&#xff08;I/O输出&#xff09;按键检测&#xff08;I/O输入&#xff09; S…...

【实用安装教程】在win系统下制作Mac OS镜像启动U盘

第一步&#xff1a;制作Mac OS系统引导镜像启动U盘 准备一个8G&#xff08;或以上&#xff09;的U盘插入到win系统的电脑上 去下载TransMac(Mac启动盘制作工具)v10.4按照说明安装好 插入准备好的U盘&#xff0c;U盘数据要转移&#xff0c;打开TransMac&#xff0c;右键U盘选…...

职场唠嗑-国家教学

文章目录 职场晋升潜规则&#xff1a;让上司看到自己工作能力职场生存指南&#xff1a;脆弱无罪&#xff0c;眼泪如何变利器关于具备谋取好职位的资格实习生在职场的基本“规矩”比能力更能决定人生的&#xff0c;是你对工作的态度跳槽&#xff1a;看别人家的“饭”端自家的碗职…...

【温故而知新】JavaScript数据结构详解

一、概念 JavaScript是一种弱类型的编程语言&#xff0c;它提供了一些内置的数据结构来存储和组织数据。 在计算机科学中&#xff0c;数据结构是一种特定的方式来组织和存储数据&#xff0c;以便于有效地访问和修改数据。在JavaScript中&#xff0c;数据结构是指相互之间存在…...

matlab如何标定相机内外参和畸变参数

关于内外参矩阵和畸变矩阵可以学习 https://blog.csdn.net/qq_30815237/article/details/87530011?spm1001.2014.3001.5506 在APP中找到 camera Calibrator 点击 Add Images&#xff0c;导入拍照图片。标定20张左右就够了&#xff0c;然后角度变一下&#xff0c;但不需要变太…...

【卫星科普】什么是农业一号卫星和农业二号卫星?

农业一号卫星和农业二号卫星是中国自主研发的两颗重要卫星&#xff0c;主要用于农业领域的监测和研究。 农业一号卫星是中国第一颗具备红边波段传感器的卫星&#xff0c;也是世界上第一颗具备红边波段的宽视场多光谱中高分辨率卫星。这对农业农村遥感监测非常重要&#xff0c;…...

imgaug库指南(一):从入门到精通的【图像增强】之旅

文章目录 引言imgaug简介安装和导入imgaug代码示例imgaug的强大之处和用途小结结尾 引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和…...

vue封装基础input组件(添加防抖功能)

先看一下效果&#xff1a; // 调用页面 <template><div><!-- v-model&#xff1a;伪双向绑定 --><my-input v-model"inputVal" label"姓名" type"textarea" /></div> </template><script> import…...

小程序一次性订阅消息(消息通知):java服务端实现

文章目录 引言一、消息订阅1.1 小程序订阅消息功能介绍1.2 消息分类1.2.1 新版一次性订阅消息Beta1.2.2 一次性订阅消息&#xff08;用户通过弹窗订阅&#xff09;1.2.3 长期订阅消息&#xff08;用户通过弹窗订阅&#xff09;1.2.4 设备订阅消息 二、获取模板ID1.登录[微信公众…...

百度自由DIY小程序源码:PHP+MySQL组合开发 带完整的搭建教程

随着移动互联网的快速发展&#xff0c;小程序已成为企业与用户互动的重要平台。然而&#xff0c;对于许多中小企业和开发者来说&#xff0c;从零开始开发一款小程序需要投入大量的时间和资源。 以下是部分代码示例&#xff1a; 系统特色功能一览&#xff1a; 1.高度自定义&…...

Vue中的选项式 API 和组合式 API,两者有什么区别

Vue中的选项式 API&#xff08;Option API&#xff09;和组合式 API&#xff08;Composition API&#xff09;是两种不同的组件编写方式&#xff0c;它们各有特点和适用场景&#xff1a; 选项式 API&#xff08;Option API&#xff09;: 传统方法&#xff1a;Vue最初的编程范式…...

Linux下误删除后的恢复操作测试之extundelete工具使用

一、工具介绍 extundelete命令的功能可用于系统删除文件的恢复。在使用前&#xff0c;需要先将要恢复的分区卸载&#xff0c;以防数据被意外覆盖。 语法格式&#xff1a;extundelete [参数] 文件或目录名 常用参数&#xff1a; --after 只恢复指定时间后被删除的文件 --bef…...

table表格中使用el-popover 无效问题解决

实例只针对单个的按钮管用在表格里每一列都有el-popover相当于是v-for遍历了 所以我们在触发按钮的时候并不是单个的触发某一个 主要执行 代码 <el-popover placement"left" :ref"popover-${scope.$index}"> 动态绑定了ref 关闭弹窗 执行deltask…...

c++类全面讲解

文章目录 前言类的基本概念基本结构类与结构体的区别示例代码 类的属性和方法属性&#xff08;成员变量&#xff09;方法&#xff08;成员函数&#xff09;访问修饰符示例代码 类的构造函数和析构函数构造函数析构函数示例代码 类的构造函数重载重载构造函数示例代码 类中的拷贝…...

使用Python和Pygame库创建简单的的彩球效果

简介 Pygame是一款强大的游戏开发库&#xff0c;可以用于创建各种有趣的图形效果。为了更好地了解Pygame的功能&#xff0c;今天我们将要做的是在屏幕上随机生成一些彩色的小球&#xff0c;并使它们以不同的速度和方向移动。当小球碰到屏幕边缘时&#xff0c;它们将反弹。 功能…...

第2课 使用FFmpeg读取rtmp流并用openCV显示视频

本课对应源文件下载链接&#xff1a; https://download.csdn.net/download/XiBuQiuChong/88680079 这节课我们开始利用ffmpeg和opencv来实现一个rtmp播放器。播放器的最基本功能其实就两个:显示画面和播放声音。在实现这两个功能前&#xff0c;我们需要先用ffmpeg连接到rtmp服…...

【中小型企业网络实战案例 七】配置限速

相关学习文章&#xff1a; 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…...

合肥网站建设网站模板/广告投放都有哪些平台

开发工具下载地址...

网站服务器错误/企业网站模板图片

简介:开发工具篇Maven 篇Git 篇其他工具篇开发工具篇Intellij IDEA 最常用配置详细图解Intellij IDEA 非常6的 10 个姿势Intellij IDEA 那些隐藏好用的小技巧Intellij IDEA Debug 调试技巧Intellij IDEA 阅读源码的 4 个绝 ...开发工具篇Maven 篇Git 篇其他工具篇开发工具篇Int…...

长葛做网站/营销必备十大软件

java错误-java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around 标签&#xff1a; aspectjrtaopjava2015-08-31 13:53 5521人阅读 评论(0) 收藏 举报分类&#xff1a;JAVA&#xff08;61&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经…...

源码做网站教程/百度推广优化技巧

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼最近学习CUDA C的编程&#xff0c;在并行运行一个简单的解调算法的时候&#xff0c;统计时间后发现运行速度越来越慢(但还是运算结果正确的)&#xff0c;后来简化到只运行其中一个核函数的时候&#xff0c;就算复杂度下降了&#x…...

wordpress 淘宝客 百度/淘宝热搜关键词排行榜

第1部分 宽带连接 因为MacBook电脑设计的比较薄&#xff0c;因此省去了宽带水晶头的插槽&#xff1b;但可以通过USB网络转换器来实现宽带连接。接好后&#xff0c;打开"系统偏好设置"-选择“网络” 点击左下角的“”&#xff0c;接口选择“PPPoE”&#xff0c;服务名…...

做网站需要什么 图片视频/西安互联网推广公司

2019独角兽企业重金招聘Python工程师标准>>> 一、什么是Jenkins的分布式构建和部署 Jenkins的分布式构建&#xff0c;在Jenkins的配置中叫做节点&#xff0c;分布式构建能够让同一套代码或项目在不同的环境(如&#xff1a;Windows和Linux系统)中编译、部署等。 二、…...