前端面试回答不好的问题总结

vue生命周期:

beforeCreated、created、beforeMount、mount、beforeUptade、uptade、beforeDestroy、destroyed、 Activated、Deactivated

闭包:

ECMAScript中,闭包指的是:

  1. 从理论角度:所有的函数。因为它们都在创建的时候就将上层上下文的数据保存起来了。哪怕是简单的全局变量也是如此,因为函数中访问全局变量就相当于是在访问自由变量,这个时候使用最外层的作用域。
  2. 从实践角度:以下函数才算是闭包:
    1. 即使创建它的上下文已经销毁,它仍然存在(比如,内部函数从父函数中返回)
    2. 在代码中引用了自由变量
    var scope = "global scope";
    function checkscope(){var scope = "local scope";function f(){return scope;}return f;
    }var foo = checkscope();
    foo();

Composition API、setup, 都是组合api 直接说中文谁记得英文名字。

ref 和 reactive的区别

ref与reactive区别

ref定义的是基本数据类型
ref通过Object.defineProperty()的get和set实现数据劫持
ref操作数据.value,读取时不需要。value
reactive定义对象或数组数据类型
reactive通过Proxy实现数据劫持
reactive操作和读取数据不需要.value

let、const和var都是用来声明变量的,但它们之间有一些重要的区别:

  1. 变量的作用域:var声明的变量是函数作用域的,而let和const声明的变量是块级作用域的。这意味着var声明的变量在函数内部和外部都可以访问,而let和const声明的变量只能在声明它们的代码块内部访问。
  2. 变量的可变性:let声明的变量可以被重新赋值,而const声明的变量不能被重新赋值。这意味着,如果你尝试重新赋值一个const声明的变量,你会得到一个错误。
  3. 变量的初始化:var声明的变量可以被声明但未被初始化,而let和const声明的变量必须在声明时被初始化。
  4. 变量提升:var声明的变量会提升到当前作用域的顶部,这意味着你可以在声明之前访问它。而let和const声明的变量不会提升,你必须在声明之后才能访问它们。

总的来说,let和const是ES6引入的更安全、更严格的变量声明方式,而var是ES5引入的,它的使用有一些限制和副作用。

防抖

防抖的原理就是:你尽管触发事件,但是我一定在事件触发 n 秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,那我就以新的事件的时间为准,n 秒后才执行,总之,就是要等你触发完事件 n 秒内不再触发事件,我才执行,真是任性呐!

// 第一版
function debounce(func, wait) {var timeout;return function () {clearTimeout(timeout)timeout = setTimeout(func, wait);}
}

节流

如果你持续触发事件,每隔一段时间,只执行一次事件。

根据首次是否执行以及结束后是否执行,效果有所不同,实现的方式也有所不同。
我们用 leading 代表首次是否执行,trailing 代表结束后是否再执行一次。


function throttle(func, wait) {var timeout;var previous = 0;return function() {context = this;args = arguments;if (!timeout) {timeout = setTimeout(function(){timeout = null;func.apply(context, args)}, wait)}}
}

百度埋点使用gif图主要是因为gif图具有以下特点和优势:

  1. 跨域支持:互联网广告或网站监测方面常用的手段,简单、安全。利用空白gif或1x1 px的img是互联网广告或网站监测方面常用的手段,简单、安全、相比PNG/JPG体积小。
    1px 透明图,对网页内容的影响几乎没有影响。
  2. 兼容性强:这种请求用在很多地方,比如浏览、点击、热点、心跳、ID颁发等等,图片请求不占用 Ajax 请求限额。
  3. 方便快捷:只要new Image对象就好了,一般情况下也不需要append到DOM中。
  4. 实时监测:可以通过它的onerror和onload事件来检测发送状态。

百度埋点是在网站或应用程序中收集和分析用户行为数据的常见方法之一。通过在代码中嵌入特定的JavaScript,百度埋点可以捕获用户与网站或应用程序的交互信息,如页面浏览、点击、滚动等行为。这些数据可以帮助百度和相关的广告主、网站主等了解用户的行为习惯和需求,从而优化产品和服务。

HTTP和HTTPS的主要区别如下:

  1. 安全性:HTTP是超文本传输协议,信息是明文传输,而HTTPS是具有安全性的SSL加密传输协议。这意味着HTTPS协议可以保护传输的数据不被窃取或篡改。
  2. 证书与费用:HTTPS协议需要到CA(证书授权)申请证书,一般免费证书较少,因而需要一定费用。而HTTP不需要证书,无需支付相关费用。
  3. 连接方式与端口:HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样。HTTP连接是无状态的,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。

总的来说,HTTP和HTTPS的主要区别在于安全性、证书与费用以及连接方式与端口。因此,如果您对数据传输的安全性有较高要求,建议使用HTTPS协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序算法-快速排序法(QuickSort)

排序算法-快速排序法(QuickSort) 1、说明 快速排序法是由C.A.R.Hoare提出来的。快速排序法又称分割交换排序法,是目前公认的最佳排序法,也是使用分而治之(Divide and Conquer)的方式,会先在数…

统计子岛屿的数量

统计子岛屿 题目描述 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。任何矩阵以外…

【C++】手撕STL系列——string篇

文章导读 本章我们将参照STL源码,来模拟实现string类,但不一定非要与库中完全相同。我们将其中重要的、常用的接口进行模拟实现,旨在加深string类的学习与记忆。 为了代码更好地复用,本篇模拟的函数接口的顺序大概为构造类——》…

京东商品价格监控API 高并发实时数据

随着电子商务的飞速发展,商品价格监控变得越来越重要。对于电商平台而言,实时监控商品价格不仅可以及时调整市场策略,还可以优化库存管理,提高销售额。本文以“京东商品价格监控API高并发实时数据”为标题,将探讨如何使…

序列化与反序列化And存入redis中的数据为什么要序列化

一、序列化与反序列化 序列化:指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转化成二进制的过程。 即将…

【STM32单片机】防盗报警器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用按键、动态数码管、蜂鸣器、指示灯、热释电人体红外传感器等。 主要功能: 系统运行后,默认处于布防状态,D1指示灯…

Excel 规范录入数据

文章目录 录入日期录入百分比 快捷键: tab:向右切换单元格 enter:向下切换行 shift tab:向左切换单元格 shiftenter:向上切换行 录入日期 输入今天的日期的快捷键:Ctrl ; 输入当时的时间的快捷键&a…

Java反射获取抽象类方法属性问题讲解

Java反射获取抽象类方法属性问题讲解 结论一、案例准备二、测试方法:使用反射获取抽象类私有方法和私有属性具体操作(获取私有方法)具体操作(获取私有属性) 结论 Java 通过反射可以获得抽象类的任何修饰符&#xff08…

Gin框架中的Cookie怎么搞(会话控制)

参考地址 设置和获取 Cookie | Gin Web Framework (gin-gonic.com)https://gin-gonic.com/zh-cn/docs/examples/cookie/ 什么是cookie cookie在互联网上随处可见,具体体现如下: 保持登录状态 保存浏览器的历史记录 大数据随心配,按喜好推送讯息 购物网站加入购物车 都会…

flink中使用外部定时器实现定时刷新

背景: 我们经常会使用到比如数据库中的配置表信息,而我们不希望每次都去查询db,那么我们就想定时把db配置表的数据定时加载到flink的本地内存中,那么如何实现呢? 外部定时器定时加载实现 1.在open函数中进行定时器的…

【RealTek sdk-3.4.14b】RTL8197FH-VG+RTL8367+RTL8812F WiFi to LAN 和WiFi to WAN吞吐量

LAN <----------> 2.4G WiFi Throughput 天线频宽模式协议连接速率TX(Mbps)RX(Mbps)TX&RX(Mbps)2X240MHz802.11nTCP300Mbps2051922112X240MHz802.11nUDP300Mbps224234231 LAN <----------> 5G WiFi Throughput 天线频宽模式协议连接速率TX(Mbps)RX(Mbps)TX&…

IntelliJ IDEA Maven 项目的依赖分析

在一个 maven 的项目中&#xff0c;我们需要知道我们的项目中使用的包可能有哪些冲突。 这个在 IntelliJ IDEA 中提供了贴心的查看。 选择 Maven 项目中的分析依赖。 随后&#xff0c;IntelliJ IDEA 将会打开一个依赖分析的标签页。 在这个标签页中&#xff0c;我们可以看到…

用例图 UML从入门到放弃系列之三

1.说明 关于用例图&#xff0c;这篇文章我将直接照搬罗伯特.C.马丁老爷子在《敏捷开发》一书种的第17章&#xff0c;并配上自己的理解&#xff0c;因为这一章写的实在是太精彩了&#xff0c;希望能够分享给大家&#xff0c;共勉。以下是老爷子的原文中文翻译以及豆芽的个人解读…

Ultra-Fast-Lane-Detection 车道线学习资料整理

目录 官方版本 两个优化 数据标注,降低参数量 1 数据标注 2降低参数量

代码随想录算法训练营Day50|动态规划9

代码随想录算法训练营Day50|动态规划9 文章目录 代码随想录算法训练营Day50|动态规划9一、198.打家劫舍二、213.打家劫舍II三、337.打家劫舍 III 一、198.打家劫舍 class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) return 0;if (nums.length …

C++程序员入门怎么学?

1 背景 经常听到不少朋友在吐槽C太难学了&#xff0c;说什么从入门到放弃等等&#xff1b;做为一名C老兵&#xff0c;从2003年开始入坑C到今年2023年&#xff0c;整整20年的C开发从业者的我&#xff0c;今天尝试给有兴趣从事C开发的程序员提些建议&#xff0c;希望可以帮到大家…

C++ (Chapter 1)

C (一) 1.C的命名空间 先来看一个C语言的例子: 下面这段代码是可以正常运行的. #include<stdio.h> int rand 0; int main() {printf("%d \n", rand);return 0; }但是,包含了一个头文件之后,甚至无法通过编译. #include<stdio.h> #include<stdli…

力扣每日一题35:搜索插入的位置

题目描述&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5…

大数据Doris(八):启动FE步骤

文章目录 启动FE步骤 一、配置环境变量 二、​​​​​​​创建doris-mate

排序算法-插入排序法(InsertSort)

排序算法-插入排序法&#xff08;InsertSort&#xff09; 1、说明 插入排序法是将数组中的元素逐一与已排序好的数据进行比较&#xff0c;先将前两个元素排序好&#xff0c;再将第三个元素插入适当的位置&#xff0c;也就是说这三个元素仍然是已排序好的&#xff0c;接着将第…