面试题-未处理的 (上)

简介: 面试题-未处理的

Vue是什么?(了解就可以)


1.是一套用于构建用户界面的渐进式框架,自底向上逐层应用。


2.vue核心只关注视图层,不仅容易上手,而且方便与第三方库整合。


3.当与现代化的工具以及各种支持类库结合使用时,完全能够为复杂的单页应用提供驱动。


Vue的优点 (了解)


1.开发者:只关注视图,简单易学,


2.双向数据绑定,操作数据简单


3.组件化,构建单页面有优势


4.视图数据分离,使用数据更方便


5.虚拟DOM+diff算法,提高页面的渲染速度


watch的使用


watch: {
    firstName(newName, oldName) {
      // newName 是新值,oldName旧值
    },
    immediate: true,
} 
immediate: 立即监视, deep : 深度监视


常用的事件修饰符


.stop ==> event.stopPropagation() 阻止事件冒泡
.prevent ==> event.preventDefault() 取消默认事件,不停止传播
.capture ==> 事件捕获
.self ==> 只触发自己范围内的事件, 不包含子元素
.once ==> 只会触发一次


你对slot的理解


slot是 vue 内容分发机制,插槽是子组件的一个模板标签。


这个标签由父组件决定,有默认插槽,具名插槽和作用域插槽。


默认:匿名插槽,直接在组件送写slot。一个组件只能有一个匿名


具名:带有名字的插槽,slot name='xxx'可以有多个。


作用域: 可以有名字也可以无,不同点,在子组件渲染时,


可以将子组件内部的数据传递给父组件,父组件根据子组件的数据决定如何渲染


Vue模版编译原理


解析阶段:对 template 字符串解析,将标签,指令,属性转为抽象语法树 AST


优化阶段:遍历 AST 找其中的静态节点进行标记,方便在重新渲染的时候进行 diff 比较时 ,跳过一些静态节点


生成阶段:将 AST 转为 render函数字符串


前后端API交互如何保证数据安全性


1.使用https通讯


2.请求签名,防止参数被篡改


3.身份确认机制,每次请求都要验证合法


4.app中使用 ssl , 防止抓包操作


5.对所有请求响应都加密


js相关的面试题


微任务有哪些?


1.Promise 2.await和async


这样记忆: es6(Promise)  es7(await和async)


宏任务有哪些?


1.setTimeout   2.setInterval


3.DOM事件      4.AJAX请求


微任务与宏任务的区别?


微任务的执行时机比宏任务早。


但是并不不意味着=>微任务的结果先返回数据


严格的来说:ps:微任务》DOM渲染》宏任务 .


js的基本数据类型有哪些?


JavaScript一共有6种数据类型


其中有7种基本数据类型:String,Boolean、Number,Undefined,Null,Symbol


数据类型的转化


转换为布尔值--调用Boolean()方法


转换为数字-调用Number()、parseInt()、parseFloat()方法


转换为字符串调用.toString()或者 加上一个空的字符串( +'' )


ps:null和underfined没有.toString方法


有哪些内置对象?


Function、Arguments、Math、Date、RegExp(正则表达式)、Error


Ajax 是什么?


我对 ajax 的理解是,它是一种异步通信的方法.


通过js脚本向服务器发起 http 通信,


然后根据服务器返回的数据,更新网页的相应部分.


而不用刷新整个页面的一种方法。


如何创建一个 Ajax?


1.创建Ajax对象  2.配置 Ajax请求地址  3.发送请求  4:监听请求,接受响应
//1:创建Ajax对象 兼容IE6及以下版本
var xhr =  window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
//2:配置 Ajax请求地址
xhr.open('get','index.xml',true); //
//3:发送请求
xhr.send(null); // 严谨写法
//4:监听请求,接受响应
xhr.onreadysatechange=function(){
    if(xhr.readySate ==4 && xhr.status==200 || xhr.status==304 )
        console.log(xhr.responsetXML)
}


谈谈你对模块化开发的理解?(高级)


我的理解:一个模块是实现一个特定功能的一组方法,


在最开始的时候,js 只实现一些简单的功能,所以并没有模块的概念 .


但随着程序越来越复杂,代码的模块化开发变得越来越重要。


由于函数具有独立作用域的特点,最原始的写法是使用函数来作为模块,


但是这种方式容易造成全局变量的污染,并且模块间没有联系。


后来提出了对象写法,通过将函数作为一个对象的方法来实现,


这样解决了直接使用函数作为模块的一些缺点。


但是这种办法会暴露所有的所有的模块成员,外部代码可以修改内部属性的值。


所以现在最常用的是立即执行函数的写法,


通过利用闭包来实现模块私有作用域的建立,同时不会对全局作用域造成污染。


AMD 和 CMD 规范的区别?


它们之间的主要区别有两个方面:


1.AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块。


而 CMD 推崇就近依赖,只有在用到某个模块的时候再去 require


2.对依赖模块的执行时机处理不同。


AMD在依赖模块加载完成后就直接执行依赖模块。


CMD 在依赖模块加载完成后并不执行,只是下载而已,


等到所有的依赖模块都加载好后,进入回调函数函数,


遇到 require 语句 的时候才执行对应的模块,


(这样模块的执行顺序就和我们书写的顺序保持一致了)


requireJS的核心原理是什么?(高级)


require.js 的核心原理是通过动态创建 script 脚本,来异步引入模块,


然后对每个脚本的 load 事件进行监听,


如果每个脚本都加载完成了,再调用回调函数。


ps:require.js 实现了 AMD 规范。


ES6 模块与 CommonJS 模块的差异(高级)


1=>CommonJS 模块输出的是一个值的拷贝, CommonJS 模块输出的是值


ES6 模块输出的是值的引用。


2=> CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。


CommonJS 模块就是对象,即在输入时是先加载整个模块,生成一个对象,


然后再从这个对象上面读取方法,这种加载称为“运行时加载”。


而 ES6 模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。


arguments 的对象是什么?


arguments对象是函数中传递的参数值的集合。


它是一个类似数组的对象,因为它有一个length属性.


使用数组索引表示法arguments[1]可以访问单个值。


但它没有数组中的内置方法,如:forEach、reduce、filter和map。


通过Array.prototype.slice将arguments对象转换成一个数组。


注意:箭头函数中没有arguments对象。



相关文章
|
12天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
10天前
|
存储 人工智能 搜索推荐
终身学习型智能体
当前人工智能前沿研究的一个重要方向:构建能够自主学习、调用工具、积累经验的小型智能体(Agent)。 我们可以称这种系统为“终身学习型智能体”或“自适应认知代理”。它的设计理念就是: 不靠庞大的内置知识取胜,而是依靠高效的推理能力 + 动态获取知识的能力 + 经验积累机制。
374 133
|
10天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
461 131
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
4天前
|
存储 安全 前端开发
如何将加密和解密函数应用到实际项目中?
如何将加密和解密函数应用到实际项目中?
211 138
|
11天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
425 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
4天前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
220 136
|
22天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1533 87
|
23天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1365 8