8-16小实训笔试题

1、如何让一个元素水平垂直居中

display:flex
justify-content:center;
align-items:center;

2、Var,let和const的区别

var为函数作用域,没有暂时性死区,let const 为块级作用域有暂时性死区
var有变量提升,而let const不能
var可以重新赋值 在同一作用域内let不能重复声明 const不能修改

3、普通函数和箭头函数有什么区别

箭头函数不能使用构造函数 相当于匿名函数,不能使用new命令 他的this永远指向上下文,且任何方法不能修改
箭头函数可以使用构造函数,有具名函熟也有匿名函数,可以使用new命令,this指向调用他的那个函数

4、详细说说你对闭包的理解

闭包就是函数嵌套函数 内部函数可以访问外部函数作用域内中的变量,参数和变量不会被回收

5、浏览器输入url到页面加载全过程

(1)浏览器构建HTTP Request请求
(2)网络传输
(3)服务器构建HTTP Response 响应
(4)网络传输
(5)浏览器渲染页面

6、什么是回流和重绘

回流:DOM树中的元素有增加或者删除,导致浏览器会重新渲染整个DOM树,回流比重绘更消耗性能,发生回流必定重绘,重绘不一定导致回流
重绘:DOM树中没有元素增加或者删除,只是改变样式宽高颜色这样的,浏览器会针对某一元素进行单独的渲染,这个过程就是重绘

7、什么是原型链,谈谈你的理解

8、什么是事件冒泡

事件由内向外触发

9、说说Vue的生命周期

就是vue实例从创建到销毁的过程,
在生命周期的不同阶段通过对应的钩子函数来实现组件之间的数据管理和DOM渲染量大重要功能

10、data为什么是函数

当data是个函数的时候,那么每个实例都会有自己的作用域,这样他们就会独立且不会互相影响,
如果data是个对象,那么在多次使用实例的时候,修改一个值,其他值也会发生改变,这样就会造成数据共享,不利于我们功能的实现

11、Vue组件通信有哪些方法

父传子 props
子传父$emit
兄弟传值 总站bus
vuex
$parent
$children

12、Watch和computed的区别

computed:是计算属性,具有依赖性,有缓存属性,只有当数据修改的时候才会执行,如果没修改那就从缓存中获取,改数据的值根据依赖目标的改变而改变。
watch:监听属性,没有依赖性,当监听对象发生改变的时候,那么所对应的对象也会发生改变

13、说说你对hash和history的理解,history模式刷新出现空白怎么解决

14、v-if和v-show的区别

共同点:都是条件渲染指令,都能控制元素的显示与隐藏
不同点:v-if通过DOM来控制元素的显示与隐藏,而v-show通过DOM元素的display,block为显示,none为隐藏
v-if是惰性的,只有当条件为真时,才开始渲染并缓存,而v-show不管条件是否为真都会渲染并缓存,
v-if有更高的切换消耗,v-show有更高的初始化消耗,频繁切换时推荐使用v-show 不频繁切换推荐使用v-if

15、说一下路由导航守卫的用法

16、Vue双向数据绑定的原理

采用数据劫持,结合发布者订阅者模式的方式,通过object.defineproperty这个方法来劫持数据的setter与getter,当数据发生改变的时候来通知给订阅者,来触发相应的监听回调

17、说一说你对vuex的理解

1.vuex的使用
官方说明:
Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

个人理解:
vuex就是一个状态管理的工具,如果我们没有用vuex,那么每个组件之间的传值就只能通过存储的方式来存储。这样一旦项目大了过后就不利于数据状态的管理。所以如果我们用到了vuex那么就会方便管理很多。

怎么使用?
下载vuex后在文件夹中会生成一个store文件,里面有一个index.js文件,也会在mian.js中自动引入这个index.js文件。store里面的state就相当于data,getters相当于computed,mutations存放同步的方法,actions存放异步的方法。

commit 和dispatch的区别在于commit是提交mutatious的同步操作,dispatch是分发actions的异步操作
1)dispatch:含有异步操作,例如向后台提交数据,写法this.$store.dispatch(‘action方法名’,值)

2)commit:同步操作,写法:this.$store.commit(‘mutations方法名’,值)

18、谈谈你对axios的了解

axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。在Web端本质上就是Ajax + Promise,服务端是htttp + Promise

19、说说你对spa单页面应用的理解

在页面加载时,会加载相应的css HTML js 一旦页面加载完成spa就不会因为用户的操作而进行页面的重新渲染和跳转,他是根据路由机制来实现页面内容的衡欢,ui与用户交互,避免了页面的重新加载
优点:用户体验好,加载速度快,内容的改变不需要加载整个页面,避免了不必要的跳转和重新渲染,基于这一点对服务器压力小,前后端职责分离,前端负责交互逻辑后端负责数据处理
缺点:初次加载页面时消耗过多,为了实现单页面应用及显示效果,需要在加载页面的时候将css js 统一加载,部分页面按需加载

20、代码实现千分化整数数字(例如:123(123);1234(1,234);123456789(123,456,789))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值