面试问题小结

部分问题汇总

  1. string = "176532897651"降序排序
  2. var let const 区别
  3. const 可以更改对象的属性吗
  4. 箭头函数的优势
  5. ES5,ES6新特性
  6. 网址到页面渲染过程
  7. 页面优化方法
  8. 如何减少http请求
  9. H5新特性
  10. Canvas
  11. link , import 区别

问题解答

  • string = "176532897651"降序排序
<html>
<body>
</body>
<script>

//升序排序
var str =  "176532897651";
var arr = str.split("");
console.log("升序排序"+arr.sort());

//降序排序
var compare = function (x, y) {//比较函数
    if (x < y) {
        return 1;
    } else if (x > y) {
        return -1;
    } else {
        return 0;
    }
}
console.log("降序排序"+arr.sort(compare));

//以下实现去重
var set = new Set(arr);
var newStr = Array.from(set);
console.log("去重"+newStr);

</script>
</html>

运算后结果

  • var let const 区别
    在这里插入图片描述
  • const 可以更改对象的属性吗?
    关键字 const 有一定的误导性。它没有定义常量值。它定义了对值的常量引用。因此,我们不能更改常量原始值,但我们可以更改常量对象的属性。
const PI = 3.141592653589793;
PI = 3.14;      // 会出错
PI = PI + 10;   // 也会出错
<script>

const people = {name:"yy",sex:"female",age:"18"}
people.age = 3;

document.getElementById("demo").innerHTML = people.age;
</script>

常量对象可以更改
您可以更改常量对象的属性:

// 您可以创建 const 对象:
const car = {type:"porsche", model:"911", color:"Black"};
// 您可以更改属性:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";

但是您无法重新为常量对象赋值:

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR
  • 箭头函数的优势
    1、箭头函数写代码拥有更加简洁的语法;
    2、不会绑定this。
  • ES5,新特性
    “use strict” 指令:定义 JavaScript 代码应该以“严格模式”执行
    String.trim():删除字符串两端的空白字符
    Array.isArray():检查对象是否为数组
    Array.forEach():每个数组元素调用一次函数
    Array.map():返回一个新的数组,元素为原始数组调用函数处理后的值。
    Array.filter():把Array的某些元素过滤掉,然后返回剩下的元素
    Array.reduce():接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
    Array.reduceRight():该方法与reduce()的不同之处是在操作数组中数据的方向不同,reduce()方法是从头向尾进行,而reduceRight()是从尾向头
    Array.every():对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true
    Array.some():对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true
    Array.indexOf():检索数组中的某个元素值并返回其位置
    Array.lastIndexOf():与 Array.indexOf() 类似,但是从数组结尾处开始检索
    JSON.parse():从Web服务器收到的文本转换为 JavaScript 对象
    JSON.stringify():从Web服务器收到的文本将其转换为字符串
    Date.now():返回自零日期(1970 年 1 月 1 日 00:00:00:00)以来的毫秒数
    属性 Getter 和 Setter
    新的对象属性和方法
  • ES6新特性
    JavaScript let
    JavaScript const
    幂 (**)
    默认参数值
    Array.find():返回通过测试函数的第一个数组元素的值
    Array.findIndex():返回通过测试函数的第一个数组元素的索引
  • 网址到页面渲染过程
    输入网址;
    发送到DNS服务器,并获取域名对应的web服务器对应的ip地址;
    与web服务器建立TCP连接;
    浏览器向web服务器发送http请求;
    web服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);
    浏览器下载web服务器返回的数据及解析html源文件;
    生成DOM树,解析css和js,渲染页面,直至显示完成;
  • 页面优化方法
    一、减少 HTTP 请求数量
    在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信。浏览器与服务器需要经过三次握手,每次握手需要花费大量时间。而且不同浏览器对资源文件并发请求数量有限(不同浏览器允许并发数),一旦 HTTP 请求数量达到一定数量,资源请求就存在等待状态,这是很致命的,因此减少 HTTP 的请求数量可以很大程度上对网站性能进行优化。
    减少HTTP请求方法:
    1、CSS Sprites:国内俗称 CSS 精灵,这是将多张图片合并成一张图片达到减少 HTTP 请求的一种解决方案,可以通过 CSS background 属性来访问图片内容。这种方案同时还可以减少图片总字节数。
    2、合并 CSS 和 JS 文件:现在前端有很多工程化打包工具,如:grunt、gulp、webpack等。为了减少 HTTP 请求数量,可以通过这些工具再发布前将多个 CSS 或者 多个 JS 合并成一个文件。
    3、采用 lazyLoad:俗称懒加载,可以控制网页上的内容在一开始无需加载,不需要发请求,等到用户操作真正需要的时候立即加载出内容。这样就控制了网页资源一次性请求数量。
    二、控制资源文件加载优先级
    浏览器在加载 HTML 内容时,是将 HTML 内容从上至下依次解析,解析到 link 或者 script 标签就会加载 href 或者 src 对应链接内容,为了第一时间展示页面给用户,就需要将 CSS 提前加载,不要受 JS 加载影响。一般情况下都是 CSS 在头部,JS 在底部。
    1、利用浏览器缓存浏览器缓存是将网络资源存储在本地,等待下次请求该资源时,如果资源已经存在就不需要到服务器重新请求该资源,直接在本地读取该资源。
    2、减少重排(Reflow)基本原理:重排是 DOM 的变化影响到了元素的几何属性(宽和高),浏览器会重新计算元素的几何属性,会使渲染树中受到影响的部分失效,浏览器会验证 DOM 树上的所有其它结点的 visibility 属性,这也是 Reflow 低效的原因。如果 Reflow 的过于频繁,CPU 使用率就会急剧上升。
    三、减少 Reflow,如果需要在 DOM 操作时添加样式,尽量使用 增加 class 属性,而不是通过 style 操作样式。
    1、减少 DOM 操作
    2、图标使用 IconFont 替换
  • H5新特性
    HTML5 中的一些有趣的新特性:
    用于绘画的 canvas 元素
    用于媒介回放的 video 和 audio 元素
    对本地离线存储的更好的支持
    新的特殊内容元素,比如 article、footer、header、nav、section
    新的表单控件,比如 calendar、date、time、email、url、search
  • Canvas

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。
画布是一个矩形区域,您可以控制其每一像素。
canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

  • link , import 区别

对于如何使用css的样式,主要有三种: 内联 ,外联,内嵌(也可称为行内)。其中外联样式的引入有两种:link 和 @import 。
(1).从属关系的区别:
link是html的标签,除了加载css文件,还可以定义RSS ,rel连接属性等 ; @import 是css提供的语法规则,只能加载css样式,只有导入样式表的作用。
(2)加载顺序的区别:
link引入css时,在页面载入时同时加载;@import引入的css将在页面加载完毕后被加载。
(3)兼容性的区别:
link是html标签,无兼容性的问题 ; @import是在css2.1里提出的,低版本浏览器不兼容, 在 IE5+才能识别。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值