当前位置: 首页 > news >正文

【面试题】作用域面试题

作用域

  1. 全局作用域
  2. 局部作用域(函数里)也称函数作用域
  3. 块级作用域 {}包裹的 例如if for 括号()也算

变量

  1. 全局变量 谁都能用,在函数内也可以
  2. 局部变量,只能在该函数内用,如果这个函数嵌套了子函数,那么父函数定义的变量,子函数也能用,不能颠倒,父亲的钱就是儿子的钱,儿子的钱不是父亲的钱
  3. 块级变量 (){} 只能在{}生效

函数作用域作用

  • 隔离变量,不同作用域下同名变量不会有冲突
  • 变量有一个坑,特殊情况
  • 如果函数内部或者块级作用域内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
function fn(){num = 10
}
console.log(num)// 10
// 函数里面的形参是局部变量

作用域链:就近原则

//具名函数: 
function fn(){// fn 是函数名}  
//匿名函数 
let sum = function(){// sum 不是函数名,只是一个变量} 

立即执行函数

立即执行,无需调用 避免全局变量之间的污染

//写法一:
function(形参){})(实参)   
function fn(形参){//可写函数名,可不写 })(实参)
//写法二:
(function(形参){}(实参))

多个立即执行函数必须加结束符,否则报错

(function(){console.log(111)})();
(function(){console.log(222)})();

当函数没有设置形参,而调用时传递了实参,会在函数内默认用arguments这个伪数组来存储实参,说他是伪数组是因为没有 pop push等方法,但是有length属性

原生js

document.querySelector('css选择器') 返回匹配的第一个元素 得到的都是一个DOM对象 document.querySelectorAll('css选择器') 返回所有匹配的元素,放在一个伪数组里

let box = document.querySelector('div')
box.className = 'active' 
// 原生js增加类,active 是类名但是会覆盖之前的类,当要修改很多样式时,可以将之前的类也写在=‘’里面

通过classList操作类控制CSS

为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名语法:

  1. 追加一个类 元素. classList.add('类名')
  2. 删除一个类 元素.classList.remove('类名')
  3. 切换一个类 元素. classList.toggle('类名')

定时器--间歇函数

  • 返回值 intervalID 是一个非零数值,用来标识通过setInterval()创建的定时器,这个值可以用来作为 clearInterval() 的参数来清除对应的定时器。
  • 一般let 一个变量来存储返回值,方便后续清除定时器 // clearInterval(存储返回值的变量)

开启定时器

//写法一:函数代码写在里面
setInterval(function(){
console.log('你好啊')
},1000)//每间隔1s ,就会调用这个函数一次//写法二:在外面定义一个函数,在setInterval(函数名,1000),只写函数名,不写(),因为一写就是调用,会立即执行,定时器就失去作用
function show(){console.log('你好啊')
}
setInterval(show,1000)

定时器--延迟函数

let qq  = setTimeout(function(console.log(111)
){
}10000) // 会在10s后调用这个函数,只会执行一次  //清除延时 
clearTimeout(qq)

实例化时间对象

new Date()
//获取当前本地时间
let operateTime = new Date().toLocaleString()

时间格式化

<div> {{item.date | format('yyyy-MM-dd hh-mm-ss')}} </div>Vue.filter('format',function(value,arg){function dateFormat(date,format){if(typeof date === "string"){var mts = date.match(/(\/Date\((\d+)\)\/)/);if(mts && mts.length >= 3){date = parseInt(mts[2]);}}date = new Date(date);if(!date || date.toUTCString() == "Tnvalid Date") {return "";}var map = {"M":date.getMonth() + 1,  // 月份“d”:date.getDate(),  // 日“h”:date.getHours(),  // 小时“m”:date.getMinutes(),  // 分“s”:date.getSeconds(),  // 秒“q”:Math.floor((date.getMonth() + 3) / 3),  // 季度“S”:date.getMilliseconds(),  // 毫秒};format = format.replace(/([yMdhmsqS])+/g,function(all,t){var v = map[t];if(v !== undefined) {if(all.length > 1) {v = '0' + v;v = v.substr(v.length - 2);}return v;}else if (t == 'y'){return (date.getFullYear() + ' ').substr(4 - all.length);}return all;});return format;}
})

判断类型

instanceof

  • 只能判断对象的具体类型(判断对象里面的属性和方法)
  • 其中instance 是实例 例子的意思
  • 能用===判断类型的只有两种 null undefined ,因为这两个类型只有一个值

typeof

  • 返回数据类型的字符串表达式
  • typeof 判断不了null 与 object ,object与array
  • 可以判断 undefined /字符串/数值/Boolean/function
  • null 和undefined 没有toString()方法
  • undefined是变量定义了但未赋值
  • null 是var a = null 定义赋值了,值为null
  • 初始赋值为 null,表明将要赋值为变量
  • 结束前,赋值为null,是为了让对象成为垃圾对象,被垃圾回收器回收
console.log(typeof null)   // 'object'
  • 数据类型分为 基本类型 和 对象类型
  • 变量类型分为 基本类型和引用类型(变量内存值的类型)
  • 基本类型:保存的就是基本类型的数据
  • 引用类型:保存的是地址值

var c = {}, c 保存的是这个对象的地址值,c准确的说是引用类型,{}这个数据,也是对象c

正则表达式

  1. 设定规则
  2. 进行检测匹配
let reg = /前端/
let str = '我要学前端'

检测方法一:reg.test(str)

  • 判断是否有符合规则的字符串
  • 要么是true 要么是false

检测方法二:reg.exec(str)

  • 检索(查找)是否有符合规则的字符串 找到返回数组 否则返回null
  • 普通字符:数字和英文字母
  • 元字符:[a-z] ,[0-9] // 相当于abcdefg......xyz 规定用户只能输入0-9
  • 边界符

^ 以什么开头

console.log(/^哈/.test( '二哈'))   // false
console.log(/^哈/.test('我开心的哈哈大笑'))  //faLse

& 以什么结尾

// 当 ^& 一起用时,表示精确查找   /^哈$/   被查找的字符串只能是哈
console.log(/^哈$/.test('我开心的哈哈大笑")) //  false
console.log(/^哈$/.test('哈哈')) // false 
console.log(/^哈$/.test('哈'))/ /true   精确匹配
  • 量词{n,m} 只能出现n到m次
  • 字符类[ ]
  • 连字符 - 表示一个范围 [a-z] ,[0-9] [a-zA-Z]只选其中一个

constructor 构造函数

  • 所有在class里面的函数都不用写 function //constructor(){} 是用来接收 new 实例化时传递的参数
// 创建类 classclass  Star {constructor(uname,age){this.uname = uname;this.age = age;}sing(){console.log("我唱歌")}
}
  • 多个函数方法之间,不需要逗号分隔
// 利用类创建对象 newlet  dh =  new  Star('刘德华',18)
  • in 运算符 ,检查某个属性是否在对象中,返回true 和 false
console.log("age" in  ldh)// true  
  • 基本数据类型变量在栈内存中,保存的就是值,引用数据类型保存的是内存地址

获取元素子节点

  • 元素.getElementsByTagName()
  • 元素.childNodes 子节点不是子元素,子节点有空白
  • childNodes 会返回包括文本节点在内的所有的节点,标签间的空白(换行)也当做是文本节点,但是在IE8及以下版本不会将空白计算到文本节点中
  • 元素.firstChild 子节点不是子元素,子节点有空白文本节点
  • 元素.lastChild 子节点不是子元素,子节点有空白文本节点

子元素

  • 元素.children 只包含标签
  • 元素.firstElementChild 不兼容IE8 及以下

其他元素

  • 获取body document.body
  • 获取html document.documentElement
  • 所有元素 document.all

读取样式

  • 通过 style 设置和读取的都是内联样式,优先级较高,读不到样式表
div.style.width
  • currentStyle 可以读取正在显示的样式
div.currentStyle.width  //只有IE 浏览器支持
  • 常用 getComputedStyle() 传递两个参数,第一个参数是目标元素,第二个一般是null
getComputedStyle(div,null) // 返回的是一个对象,所有样式都在这个对象obj中
getComputedStyle(div,null).width   // 不支持IE8 及以下

getComputedStyle(div,null) 与 currentStyle 区别

  • 在没有设置值时,getComputedStyle()会返回真实的值,而不是默认值,比如width,后者会返回auto,前者返回真实值
  • currentStyle 和 getComputedStyle() 获取的 样式都只是可读的,不能修改

 前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

相关文章:

【面试题】作用域面试题

作用域 全局作用域局部作用域&#xff08;函数里&#xff09;也称函数作用域块级作用域 {}包裹的 例如if for 括号&#xff08;&#xff09;也算 变量 全局变量 谁都能用&#xff0c;在函数内也可以局部变量&#xff0c;只能在该函数内用&#xff0c;如果这个函数嵌套了子函…...

08 定时器(下)

08 定时器&#xff08;下&#xff09; 本文内容 定时器处理非活动连接模块&#xff0c;分为定时方法与信号通知流程&#xff1b;定时器及其容器设计、定时任务的处理。 定时器设计&#xff0c;将连接资源与定时事件等封装起来&#xff0c;具体包括连接资源、超时时间和回调函…...

C++设计模式之适配器设计模式

文章目录 C适配器设计模式什么是适配器设计模式该模式有什么优缺点优点缺点 如何使用 C适配器设计模式 什么是适配器设计模式 适配器设计模式是一种行为型设计模式&#xff0c;它允许你将两个不兼容的接口组合在一起&#xff0c;使它们能够协同工作。 该模式有什么优缺点 优…...

Maven项目解决cannot resolve plugin maven-deploy-plugin:2.7

导入maven项目后&#xff0c;编辑的时候提示一些插件加载失败&#xff01;大概率是你的网络有问题&#xff0c;插件下载失败。 如下图&#xff1a;&#xff08;网络突然好了&#xff0c;我想截图但是没有复现&#xff0c;用网上找到的截图代替&#xff0c;明白意思就行&#x…...

Postgresql源码(110)分析dsm动态共享内存分配与共享内存mq实例

相关 《Postgresql源码&#xff08;90&#xff09;共享内存申请CreateSharedMemoryAndSemaphores》 《Linux内存映射函数mmap与匿名内存块》 《Linux共享内存与子进程继承》 0 概念 数据结构含义&#xff1a; dsm_segment&#xff08;动态共享内存段&#xff09;&#xff1a;…...

51单片机学习--蜂鸣器播放音乐

由原理图可知&#xff0c;蜂鸣器BEEP与P1_5 相关&#xff0c;但其实这个原理图有错&#xff0c;实测接的是P2_5 下面这个代码就是以500HZ的频率响500ms的例子 sbit Buzzer P2^5;unsigned char KeyNum; unsigned int i;void main() {while(1){KeyNum Key();if(KeyNum){for(i …...

【Vue组件eval方法的使用】

Vue页面中条件可以放在当前vue页面中而无需影响到组件 如 这是我的表格操作列按钮&#xff0c;需求是第四个按钮如果表格当前数据的is_execl字段为0则显示否则隐藏 这种条件判断很频繁 如果像之前一样给一个标识&#xff0c;页面多了就难以维护&#xff0c;而且判断条件如果不…...

C++ 多文件结构和编译预处理命令

1. C程序的一般组织结构 C源程序的结构基本上都是由3个部分构成&#xff1a;类的定义、类的成员的实现和主函数。因为所编写的程序比较小&#xff0c;所以这三个部分都写在了同一个文件当中。在规模比较大的项目中&#xff0c;往往需要多个源程序文件&#xff0c;每个源程序文…...

QT实现中英文键盘

使用Qt中实现中英文键盘&#xff0c;支持各种linux嵌入式设备。 实现思路&#xff1a;需要一个中文字体库&#xff0c;将字体库加载到一个Hash容器&#xff0c;字母和拼音作为key值&#xff0c;对应的中文作为value值。 核心代码&#xff1a; #include "UKeyBoard.h"…...

java中并发编程CompletableFuture和supplyAsync的用法

在Java中&#xff0c;并发编程可以使用CompletableFuture类来实现异步操作和并行任务。其中&#xff0c;supplyAsync是CompletableFuture类的一个静态方法&#xff0c;用于执行一个有返回值的异步任务。 supplyAsync方法的语法如下&#xff1a; public static <U> Comp…...

chrony服务器

目录 1.chrony简介 2.chrony安装配置 2.1 chrony安装及配置 非常重要&#xff1a;在配置之前&#xff0c;检查防火墙和selinux是否关闭 3.将chrony配置为其他主机的时间服务器 3.1 修改chrony配置文件 4.chronyc命令 1.chrony简介 chrony 是开源的遵循网络时间协议&…...

春秋云镜 CVE-2021-24762

春秋云镜 CVE-2021-24762 WordPress Plugin Perfect Survey 注入 靶标介绍 WordPress Perfect Survey plugin在1.5.2之前版本存在SQL注入漏洞&#xff0c;该漏洞源于基于数据库的应用缺少对外部输入SQL语句的验证。攻击者可利用该漏洞执行非法SQL命令。 启动场景 漏洞利用 …...

K8s中的Service

Service 1.Service存在的意义&#xff1f; &#xff08;1&#xff09;pod注册在service里面&#xff0c;做服务发现使用 &#xff08;2&#xff09;定义一组Pod访问策略&#xff08;负载均衡&#xff09; 2.Pod和Service关系 通过service实现Pod的负载均衡 3.常用Service类…...

[软件工程] 全局分析规格说明书模板

1 价值需求 描述目标系统的价值需求&#xff0c;可以附上商业模式画布。 1.1 利益相关者 描述目标系统的利益相关者&#xff0c;包括终端用户、企业组织、投资人等。 1.2 系统愿景 描述利益相关者共同达成一致的愿景&#xff0c;该愿景的描述需要对准企业的战略目标。 1.3 系统…...

【JAVASE】封装

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 封装 1. 什么是封装2. 访问限定符3. 封装…...

Java多线程(四)

目录 一、线程的状态 1.1 观察线程的所有状态 1.2 线程状态和状态转移的意义 1.2.1 NEW、RUNNABLE、TERMINATED状态转换 1.2.2 WAITING、BLOCKED、TIMED_WAITING状态转换 1.2.3 yield()大公无私让出cpu 一、线程的状态 1.1 观察线程的所有状态 public class Demo9 {public st…...

Linux 文件系统预留空间

在一次磁盘打满的场景下&#xff0c;使用了df -h命令来查看磁盘使用率。 [roottest tmp]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 28G 0 28G 0% /dev tmpfs 28G 0 28G 0% /dev/shm tmpfs 28G 2.8G …...

篇一:单例模式:C++中的独一无二

篇一&#xff1a;“单例模式&#xff1a;C中的独一无二” 设计模式在软件开发中起到了至关重要的作用&#xff0c;其中单例模式是最为常用且基础的设计模式之一。单例模式确保一个类只有一个实例&#xff0c;并提供全局访问点&#xff0c;以保证系统中的某个对象只有唯一的存在…...

JVM之内存结构

1.程序计数器 定义&#xff1a;程序计数器&#xff08;Program Counter Register&#xff09;是JVM中一块较小的内存空间。解释器在解释JVM指令为机器码以供CPU执行时&#xff0c;会去程序计数器当中找到jvm指令的执行地址。 作用&#xff1a;记住下一条jvm指令的执行地址 特…...

C#实现结构体与字节流的相互转化

unity项目中&#xff0c;涉及到与C的相互通信&#xff0c;而通信接口为C封好的动态库。所以&#xff0c;传输信息时&#xff0c;需要向C端发送字节流信息。 对此&#xff0c;需将结构体数据转为字节流&#xff0c;其代码如下&#xff1a; public static byte[] StructToBytes(…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...