前端考核总结

目录

  • JavaScript的基本数据类型有哪些?
  • JavaScript中数据类型的检测方法
  • JavaScript如何判断对象中的属性存在自身还是原型链上
  • flex布局
  • HTML5新标签
  • Vue的基本概念
  • Vue生命周期
  • JavaScript中闭包的基本概念
  • 防抖
  • 节流
  • 双等号与三等号的区别
  • 显式转换


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

  • String(字符型)
  • Number(数值型)
  • Boolean(布尔型)
  • Null(空)
  • Undefined(未定义)
  • Symbol(符号型)
  • bigint(数值型)

Symbol和bigint是ES6引入的一种新数据类型,用于声明非重复性变量;

JavaScript中数据类型的检测方法

  1. typeof关键字
    • 用于对基本数据类型进行"类型检测" ,检测结果以字符串形式返回;
    • typeof对null的检测结果为"object"、对NaN的检测结果为"number";
    • typeof对引用类型的检测结果为object或function;
  2. instanceof运算符
    • 用于对引用数据类型进行类型判断;
    • 只能判定是否为预期类型,返回true或false;
    • instanceof是通过原型链来实现继承关系的判断;
  3. Object.prototype.toString().call() 方法
    • 该方法用于返回被检测对象的原型对象的字符串表示;
    • Object.prototype,表示Object的原型对象(是一个对象);
    • obj.toString(),返回该对象的字符串表示,“[object type]”;
    • obj1.fn.call(obj2),call方法可改变函数内部的this指向,用obj2去执行obj1的fn()方法;
  4. === 运算符
    • 利用 === 运算符判断数据类型,基于Object.prototype.toString.call()方法实现。
    console.log(toString.call("1234") === "[object String]"); // true
    console.log(toString.call(1234) === "[object Number]"); // true
    

JavaScript如何判断对象中的属性存在自身还是原型链上

  1. in 操作符会在通过对象能够访问给定属性时返回true,无论该属性存在于对象本身还是其原型链上。
  2. hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性。
  3. 两者结合判断某个属性是存在于自身还是在原型链上

flex布局

flex是flexible Box的缩写,意为“弹性布局”,用来为盒模型提供最大的灵活性,任何一个容器都可以指定为flex布局。

  • 当我们将父盒子设为flex布局以后,子元素的float、clear和vertical-align属性将失效。
  • 伸缩布局 = 弹性布局 = 伸缩盒布局 = 弹性盒布局 = flex布局

采用flex布局的元素,称为flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,称为flex项目(flex item),简称“项目”。

  • 体验中div就是flex的父容器
  • 体验中span就是子容器flex项目
  • 子容器可以横向排列也可以纵向排列

对父容器的设置:

  1. flex-direction 设置主轴的方向
  2. justify-content 设置主轴上的子元素排列方式
  3. flex-wrap 设置子元素是否换行
  4. align-items 设置侧轴上的子元素排列方式(单行) 设置侧轴上的子元素排列方式(单行)
  5. align-content 设置侧轴上的子元素的排列方式(多行)

对子容器的设置:

  1. flex属性定义子项目分配剩余空间,用flex来表示占多少份数
  2. align-self 控制子项自己在侧轴上的排列方式
  3. order 属性定义项目的排列顺序

HTML5新标签

<header> :头部标签
<nav> :导航标签
<article> :内容标签
<section> :定义文档某个区域
<aside> :侧边栏标签
<footer> :尾部标签

Vue的基本概念

概念:Vue是一个用于构建用户界面的渐进式框架。

核心特性:响应式。

Vue生命周期

Vue的生命周期:一个Vue实例从创建到销毁的整个过程。

生命周期四个阶段:1. 创建 2. 挂载 3. 更新 4. 销毁

初始化渲染请求最早在创建阶段结束后发送。

dom操作最早在挂载阶段结束后开始。

在这里插入图片描述

JavaScript中闭包的基本概念

闭包:一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域(闭包 = 内层函数 + 内层函数引用的外层函数的变量)。

作用:封闭数据,提供操作,使外部也可以访问函数内部的变量。

闭包的基本格式:

function outer(){let i = 1function fn(){console.log(i)}return fn
}
const fun = outer()
fun() // 返回1
// 外层函数使用内部函数的变量

闭包应用:实现数据的私有,比如统计函数调用的次数。

function fn(){let count = 0function fun(){count++console.log(`函数被调用${count}`)}return fun
}
const ret = fn() 
ret() // 函数被调用1次
ret() // 函数被调用2次
//实现数据私有,无法直接修改count
//问题:内存泄漏,count无法被回收

防抖

防抖:单位时间内,频繁触发事件,只执行最后一次。

实现方式:

  • 用lodash提供的防抖来处理

    <!DOCTYPE html>
    <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {width: 200px;height: 200px;background-color: cornflowerblue;margin: 100px auto;}</style>
    </head><body><div class="box"></div><script src="./lodash.min.js"></script> <!-- 利用lodash库实现防抖 --><script>const box = document.querySelector('.box')let i = 1;function mouseMove() {box.innerHTML = i++// 如果里面存储大量消耗性能的代码,比如dom操作,比如数据处理,可能造成卡顿}box.addEventListener('mousemove', _.debounce(mouseMove, 500))</script>
    </body></html>
    

节流

单位时间内,频繁触发事件,只执行一次。

例子:王者荣耀技能冷却时间,期间无法继续释放技能。

使用场景:高频事件(鼠标移动mousemove、页面尺寸缩放resize、滚动条scroll等等)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {width: 200px;height: 200px;background-color: cornflowerblue;margin: 100px auto;}</style>
</head><body><div class="box"></div><script src="./lodash.min.js"></script> <!-- 利用lodash库实现防抖 --><script>const box = document.querySelector('.box')let i = 1;function mouseMove() {box.innerHTML = i++// 如果里面存储大量消耗性能的代码,比如dom操作,比如数据处理,可能造成卡顿}// box.addEventListener('mousemove', _.throttle(mouseMove, 2000))function throttle(fn, t) {let timerreturn function () {if (!timer) {timer = setTimeout(function () {fn()// clearTimeout(timer)无效,因为在setTimeout中无法删除定时器,所以使用timer = nulltimer = null}, t)}}}box.addEventListener('mousemove', throttle(mouseMove, 2000))</script>
</body></html>

双等号与三等号的区别

双等号有一个隐式转换,而三等号没有。
所以:

console.log('123' == 123) // true
console.log('123' === 123) // false

显式转换

  1. Number():将字符串、布尔值或其他可转换的数据类型转换为数字。
    let num = "1234";
    let num = Number(num); // num 现在是数字 1234
    
  2. parseInt() 和 parseFloat():专门用于将字符串转换为整数或浮点数,可以将字符串、布尔值或其他可转换的数据类型转换为数字。
    let strInt = "123";
    let int = parseInt(strInt, 10); // int 现在是整数 123
    let strFloat = "3.14";
    let float = parseFloat(strFloat); // float 现在是浮点数 3.14
    
  3. String():将数字、布尔值或其他可转换的数据类型转换为字符串。
    	let num = 123;let str = String(num); // str 现在是字符串 "123"
    
  4. Boolean():将非布尔值转换为布尔值
    let zero = 0;let boolZero = Boolean(zero); // boolZero 现在是 falselet nonEmptyStr = "Hello";let boolStr = Boolean(nonEmptyStr); // boolStr 现在是 true
    

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

fastadmin搜索刷新列表,怎么限制用户频繁点击?

文章目录 fastadmin搜索刷新列表&#xff0c;怎么限制用户频繁点击&#xff1f;解决方案fastadmin事件方法实现完结 fastadmin搜索刷新列表&#xff0c;怎么限制用户频繁点击&#xff1f; fastadmin目前有个很致命的问题&#xff0c;就是用户可以频繁的点击搜索等按钮&#xf…

Qt --- 界面优化 --- QSS和绘图API

界面优化 》美化 一个程序的界面是否好看&#xff0c;是否重要呢。 有些面向专业领域的程序&#xff0c;界面好看与否&#xff0c;不是看关键&#xff0c;更关键的是实际的效果。有些面向普通用户领域的程序&#xff0c;界面好看&#xff0c;还是很大的加分项。 界面优化 Qt…

奖金高达 110 万元,Spatial Joy 2024 全球 AR 应用开发大赛启动

今年是AR应用开发大赛第三届&#xff0c;恰逢Rokid成立十周年&#xff0c;我们推出全新的大赛品牌“Spatial Joy”&#xff0c;引领开发者享受开发乐趣&#xff0c;为其打造充满挑战和惊喜的开发之旅&#xff0c;逐渐成为空间计算时代全球最大AR应用开发大赛。回顾大赛发展&…

PCB敷铜敷不了相同网络的线怎么办?

图片上的情况就是今天需要讲的内容&#xff0c;可以看出出来的线头是GND,敷的铜也是GND但是相同网络就是不能连在一起。 解释&#xff1a; 这是因为我们敷铜的时候属性选的是连接相同的net,如图所示&#xff1a; 解决办法&#xff1a; 只需要设置改为相同的Object就可以了&…

STM32+ADC+扫描模式

1 ADC简介 1 ADC(模拟到数字量的桥梁) 2 DAC(数字量到模拟的桥梁)&#xff0c;例如&#xff1a;PWM&#xff08;只有完全导通和断开的状态&#xff0c;无功率损耗的状态&#xff09; DAC主要用于波形生成&#xff08;信号发生器和音频解码器&#xff09; 3 模拟看门狗自动监…

高效的视频压缩标准H.264介绍,以及H.264在视频监控系统中的应用

目录 一、概述 二、 工作原理 三、技术特点与优势 1、高效压缩率 2、高质量视频 3、错误恢复能力 4、灵活性 四、编解码过程 1、编码过程 2、解码过程 五、帧类型与结构 1、I帧 2、P帧 3、B帧 六、应用与优势 1、节省存储空间和带宽 2、提高视频质量 3、适应…

2024大二上js高级+ES6学习9.29(深/浅拷贝,正则表达式,let/const,解构赋值,箭头函数,剩余参数)

9.29.2024 1.浅拷贝和深拷贝 Es6的语法糖&#xff1a;用assign将obj对象浅拷贝给o对象。 把数组写在前面是因为数组也是对象 2.正则表达式 创建和检测正则表达式 正则表达式的使用直接跳过&#xff0c;等要用时现查现用 3.ES6 4.let关键字 块级作用域是指在一个{}l里 变量提…

File 和 Blob两个对象有什么不同

Blob 在 JavaScript 中&#xff0c;Blob&#xff08;Binary Large Object&#xff09;对象用于表示不可变的、原始的二进制数据。它可以用来存储文件、图片、音频、视频、甚至是纯文本等各种类型的数据。Blob 提供了一种高效的方式来操作数据文件&#xff0c;而不需要将数据全…

招联金融内推-2025校招

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

【springboot】使用thymeleaf模板

1. 导入依赖 首先&#xff0c;创建一个Spring Boot项目&#xff0c;并添加Thymeleaf依赖。在pom.xml文件中添加以下依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifa…

组合逻辑元件与时序逻辑元件

组合逻辑元件和时序逻辑元件都是数字电路中的基本构建块&#xff0c;但它们在功能和结构上存在显著差异。 1. 组合逻辑元件: 内容: 组合逻辑元件的输出仅取决于当前的输入&#xff0c;而与之前的输入无关。 它们没有记忆功能。 常见的组合逻辑元件包括&#xff1a; 与门 (AND…

美图AI短片创作工具MOKI全面开放 支持生成配乐、细节修改

人工智能 - Ai工具集 - 集合全球ai人工智能软件的工具箱网站 美图公司近日宣布&#xff0c;其研发的AI短片创作工具MOKI已正式向所有用户开放。这款专注于AI短片创作的工具&#xff0c;提供了包括动画短片、网文短剧等多种类型视频内容的生成能力&#xff0c;致力于为用户带来…

文件防泄密措施有哪些?6个方法有效防止文件泄密

想象一下&#xff0c;一群穿着黑衣的神秘人在电影中潜入高保安办公室&#xff0c;绕过各种高科技安保装置&#xff0c;只为偷走里面存放的饱含机密的文件&#xff01; 听起来是不是很刺激&#xff1f; 但如果这种情况发生在现实中&#xff0c;而且发生在你的企业或个人数据上…

【中级通信工程师】综合能力:2024年真题回顾(附答案)

【零基础3天通关中级通信工程师】 综合能力&#xff1a;2024年真题回顾 本文是根据参加考试的回忆并且结合网上几版资料复原的2024年通信考试中级《综合能力》的真题考卷&#xff0c;旨在为广大考生提供复习和备考的参考&#xff0c;试卷大体和真题相符&#xff0c;部分选项回…

互联网全景消息(6)之RocketMq-NameServer源码分析

一、RocketMQ介绍 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,是阿里巴巴双 11 使用的核心产品。 二、…

[Linux]:线程(二)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 与Windows环境不同&#xff0c;我们在linux环境下需要通过指令进行各操作&…

MAC的几个常见的快捷方式

1.mac 查看图片好的方式 默认查看图片的方式无法直接切换上一张下一张 解决方法&#xff1a; 1.&#xff08;最好的方法&#xff09;选中图片直接按空格&#xff0c;进入快速预览图片 2.就是全部选中然后打开&#xff0c;但是说实话有点奇怪&#xff0c;而且很占内存 3.直接显示…

【JAVA开源】基于Vue和SpringBoot的网上租赁系统

本文项目编号 T 050 &#xff0c;文末自助获取源码 \color{red}{T050&#xff0c;文末自助获取源码} T050&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计5.4.1 用…

[Linux]:线程(一)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 初识线程 1.1 线程的概念 在操作系统中&#xff0c;进程与线程一直是我们…

Vivado - JTAG to AXI Master (GPIO、IIC、HLS_IP)

目录 1. 简介 2. JTAG to AXI Master 2.1 添加 IP Core 2.2 基本TCL命令 2.2.1 复位 JTAG-to-AXI Master 2.2.2 创建并运行写入传输事务 2.2.3 创建并运行读取传输事务 2.2.4 命令列表 2.3 帮助信息 2.4 创建TCL读写程序 2.4.1 Read proc 2.4.2 Write proc 2.4.3 …