搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【代理服务器】Squid 反向代理与Nginx缓存代理_squid 与 proxychains
2
pccad无法找到所需的动态链接库_C++MyDock配置要求、所需运行库、所有常见问题全部更新...
3
清华团队开发首个AI医院小镇模拟系统;阿里云发布通义千问 2.5:超越GPT-4能力;Mistral AI估值飙升至60亿美元_通义千问估值
4
2023年12月GESP Python一、二级编程题真题解析_试题名称:小杨报数 时间限制:1.0s 内存限制:128.0mb 【问题描述】 小杨需要从 1
5
Web端MVT矢量瓦片加载之OpenLayers篇_webgl加载mvt
6
FPGA学习-vivado软件的使用_vivado怎么调用模块
7
深度学习—Yolov5模型配置_yolov5配置
8
【flink脚本系列】 kubernetes-jobmanager.sh功能用法示例源码解析
9
STM32单片机 整数转字符串函数_单片机int转字符串
10
云计算的拐点隐现 华为云开源两款容器技术
当前位置:
article
> 正文
公司面试题总结(三)
作者:很楠不爱3 | 2024-06-15 00:44:55
赞
踩
公司面试题总结(三)
13.说说你对 BOM 的理解,常见的 BOM 对象你了解哪些?
BOM (Browser Object Model)
,
浏览器对象模型
,
⚫
提供了独立于内容与浏览器窗口进行交互的对象
⚫
其作用就是跟浏览器做一些交互效果
⚫
比如如何进行页面的后退,前进,刷新,浏览器的窗口发生变化,滚动条的滚动,以及
获取客户的一些信息如:浏览器品牌版本,屏幕分辨率
⚫
浏览器的全部内容可以看成 DOM,
整个浏览器可以看成 BOM
⚫
window 对象:
◼ BOM 的顶层对象,代表整个浏览器窗口。
◼ 所有全局变量、函数以及 BOM 的其他对象都是 window 对象的属性。
◼ 提供了许多方法和属性 open(),alert(), prompt(), setTimeout(), location, navigator 等。
⚫
location 对象:
◼ 提供有关当前页面 URL 的信息,并且可以用来导航到新的 URL。
◼ 常用属性有 href(完整 URL), pathname(路径名), search(查询字符串)等,
◼ 方法有 assign(), reload(), replace()等。
⚫
navigator 对象:
◼ 提供了关于浏览器的信息,如名称、版本号和用户代理字符串等。
◼ 常用于检测浏览器类型和能力。
⚫
history 对象:
◼ 通过脚本访问浏览器的浏览历史。
◼ 对象只提供了前进(forward())、后退(back())和重载当前页面(go())等有限的方法,并
不能读取具体的历史记录条目。
⚫
screen 对象:
◼
提供了关于用户屏幕的信息,如宽度、高度、可用宽度、可用高度、色彩深度等。
⚫
localStorage/sessionStorage 对象:
◼
这两者都是 Web Storage API 的一部分,用于在用户的浏览器上存储数据。
◼
localStorage 用于持久化存储,而 sessionStorage 的数据仅在当前会话期间有效。
⚫
document 对象:
◼ 代表当前页面的 HTML 文档。
◼ 虽然严格来说它属于 DOM(Document Object Model)的一部分,但因为可以直
接通过 window.document 访问,所以也常被视为 BOM 的一部分。
◼ 它提供了操作文档内容、结构和样式的方法,如 getElementById(), querySelector(),
createElement()等。
14.Javascript 本地存储的方式有哪些?区别及应用场景?
⚫
Cookie
◼
小型文本文件,为了辨别用户身份而储存在用户本地终端上的数据
◼
不超过 4KB 的小型文本数据
◼
由 Name、Value 和几个控制 cookie 有效期、安全性、使用范围的可选属性组成
◼
每次请求中都会被发送,不使用 HTTPS 对其加密,保存的信息很容易被窃取,导
致安全风险。
◼
应用场景:
标记用户与跟踪用户行为的情况
⚫
sessionStorage
◼
持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的
◼
存储的信息在同一域中是共享的
◼
无法像 Cookie 一样设置过期时间
◼
只能存入字符串,无法直接存对象
◼
应用场景:
适合长期保存在本地的数据(令牌)
⚫
localStorage
◼
一旦页面(会话)关闭,sessionStorage 将会删除数据
◼
应用场景:
敏感账号一次性登录
⚫
indexedDB
◼
一种低级 API,用于客户端存储大量结构化数据(包括, 文件/ blobs)。
◼
该 API 使用索引来实现对该数据的高性能搜索
◼
应用场景:
存储大量数据的情况、在线文档(富文本编辑器)保存编辑历史的情况
◼
优点
:
◆ 储存量理论上没有上限
◆ 所有操作都是异步的,相比 LocalStorage 同步操作性能更高,尤其是数据量
较大时
◆ 原生支持储存 JS 的对象
◆ 是个正经的数据库,意味着数据库能干的事它都能干
◼
缺点
:
◆ 操作非常繁琐
◆ 本身有一定门槛
◼
关于
indexedDB 的使用基本使用步骤
如下:
◆
打开数据库并且开始一个事务
◆
创建一个 object store
◆
构建一个请求来执行一些数据库操作,像增加或提取数据等。
◆
通过监听正确类型的 DOM 事件以等待操作完成。
◆
在操作结果上进行一些操作(可以在 request 对象中找到)
◆
关于使用 indexdb 的使用会比较繁琐,大家可以通过使用 Godb.js 库进行缓
存,最大化的降低操作难度
15.什么是防抖和节流?有什么区别?如何实现?
⚫
防抖:
在事件触发后,等待一段时间后再执行处理函数。如果在等待时间内又发生了该
事件,就重新开始计时。简单来说,就是将多次连续触发的事件合并成一次执行。
◼
应用场景
:
◆
用户输入搜索框时,可以使用防抖来减少实时搜索接口的请求次数。
◆
窗口大小调整时,可以使用防抖来避免频繁调整布局。
◼
实现方式
:
◆
使用 setTimeout 延迟执行函数。
◆
每次触发事件时先清除之前设置的定时器,再重新设置新的定时器。
⚫
节流:
节流是指在一定时间间隔内只触发一次事件。无论事件触发多频繁,在指定时间
间隔内,只会执行一次处理函数。
◼
应用场景
:
页面滚动、resize 等频繁触发的事件,可以使用节流来限制处理函数的
执行频率。
◼
实现方式
:
◆
使用定时器控制事件的触发间隔。
◆
在定时器执行时,更新标志位以防止重复触发事件。
◆
在指定时间间隔后清除定时器,再次允许事件触发。
区别:
⚫
防抖是等待一段时间后再执行,而节流是在时间间隔内只执行一次。
⚫
防抖合并连续的触发事件,节流限制事件的触发频率。
防抖会延迟执行处理函数,节流会按照固定的时间间隔执行处理函数。
16.如何通过 JS 判断一个数组
⚫
使用
Array.isArray()
◼
这是 ES6 引入的一个原生方法,专门用来检测给定的对象是否为数组。
◼
let arr = [1, 2, 3];
◼
console.log(Array.isArray(arr)); // 输出: true
⚫
使用
Object.prototype.toString.call():
◼
这个方法会返回一个表示该对象的字符串,对于数组,它会返回 “[object Array]”。
◼
let arr = [1, 2, 3];
◼
console.log(Object.prototype.toString.call(arr) === '[object Array]'); // 输出: true
⚫
使用
instanceof:
◼
这个操作符检查构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
◼
let arr = [1, 2, 3];
◼
console.log(arr instanceof Array); // 输出: true
⚫
通过 constructor 属性:
◼
虽然这种方法可行,但是不推荐,因为 constructor 属性可以被轻易篡改。
◼
let arr = [1, 2, 3];
◼
console.log(arr.constructor === Array); // 输出: true
⚫
通过
原型链上的 isPrototypeOf() 方法
:
◼
这种方法相对较少使用,也是基于原型链的检查。
◼
let arr = [1, 2, 3];
◼
console.log(Array.prototype.isPrototypeOf(arr)); // 输出: true
创建一个数组
⚫
使用
Array 构造函数
◼
let array1 = new Array(); // 创建一个空数组
◼
let array2 = new Array(3); // 创建一个长度为 3 的空数组
◼
let array3 = new Array("Apple", "Banana", "Cherry");
⚫
使用
字面量
语法
◼
最常见的创建数组,更简洁且推荐使用。
◼
let array4 = []; // 创建一个空数组
◼
let array5 = ["Apple", "Banana", "Cherry"]; // 创建包含三个初始元素的数组
⚫
使用
Array.of()
◼
将一组参数转换为数组
◼
let array6 = Array.of(1, 2, 3); // 创建包含三个元素的数组
◼
let array7 = Array.of(0); // 正确创建只有一个元素 0 的数组,与 new Array(0)不同
⚫
通过
扩展运算符(...)
◼
复制或合并数组,快速创建数组。
◼
let array8 = [..."hello"]; // ["h", "e", "l", "l", "o"]
⚫
通过
Array.from()
◼
将类数组对象(拥有 length 属性和索引元素)或可迭代对象转换为真正的数组。
◼
let arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
◼
let array9 = Array.from(arrayLike); // 创建数组 ["a", "b", "c"]
◼
let iterable = new Map([["a", 1], ["b", 2]]);
◼
let array10 = Array.from(iterable); // 创建数组 [["a", 1], ["b", 2]]
17.说说你对作用域链的理解
作用域
,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合
⚫
一个包含一系列作用域的列表,这个列表定义了变量的可访问性。
⚫
每个函数在创建时都会生成自己的作用域链,这个链最初由全局作用域组成。
⚫
当函数嵌套时,内部函数的作用域链会包含外部函数的作用域,以此类推,形成了一个
链条。
将作用域分成:
⚫
全局作用域
◼
任何不在函数中或是大括号中声明的变量
◼
可以在程序的任意位置访问
⚫
函数作用域
◼
也叫局部作用域,如果一个变量是在函数内部声明的它就在一个函数作用域下面。
◼
这些变量只能在函数内部访问,不能在函数以外去访问
⚫
块级作用域
◼
ES6 引入了 let 和 const 关键字,和 var 关键字不同
◼
在大括号中使用 let 和 const 声明的变量存在于块级作用域中。
◼
在大括号之外不能访问这些变量
词法作用域
,又叫
静态作用域
,变量被创建时就确定好了,而非执行阶段确定的。也就是说
我们写好代码时它的作用域就确定了,JavaScript 遵循的就是词法作用域
作用域链
⚫
当在 Javascript 中使用一个变量的时候
⚫
首先 Javascript 引擎会尝试在当前作用域下去寻找该变量,
⚫
如果没找到,再到它的上层作用域寻找,
⚫
以此类推直到找到该变量或是已经到了全局作用域
⚫
如果在全局作用域里仍然找不到该变量,它就会在全局范围内隐式声明该变量(非严格
模式下)或是直接报错
18.JavaScript 原型,原型链 ? 有什么特点?
原型:
⚫
每个实例都会被分配到一个 prototype 属性,指向一个对象,此对象为函数的原型对象,
这个原型对象的所有属性和方法供函数所拥有。
⚫
默认情况下创建函数时,函数的原型上都会添加 constructor,这个 constructor 指向当
前函数对象。
原型链:
⚫
每个对象都有__proto__属性,由于原型本身也是一个对象,也有该属性,那么就可以利
用这一属性继续向上一级查找,这样就形成一条链式结构。
⚫
最顶级的对象是 Object(window),在往上就是 null。
原型链的查找机制:
⚫
查找属性时,先在对象自身查找,如果对象本身没有,就去原型中查找
⚫
如果还没有就继续向原型链的上一级查找,找到就输出。
⚫
如果指导 object 层还没有,最终返回 undefined。
事件
用户和浏览器交互瞬间
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/720215
推荐阅读
article
Hive
安装与
配置
步骤_
wget
hive
...
Hive
安装与
配置
步骤一、下载版本1.1下载
hive
1.2 直接用
wget
下载1.3 解压二、
配置
文件2.1 修...
赞
踩
article
数说CS | 双一流生源占比
100%
!
保研
武汉大学
计算机
学院
门槛
有
多高?_
武汉大学
计算机
学院
保研
机试
...
主要就业单位包括IBM、微软、华为、百度、腾讯、阿里巴巴、国家电网公司、四大国
有
银行、深圳证券交易所、以及国内高校科研院...
赞
踩
article
我
干
了
一件
大事
!...
最近读者朋友们应该都知道
我
做
了
一个付费社群,马上就要突破10000人
了
。
我
一口气推
了
10多篇文章,都是关于
我
的AI星球:...
赞
踩
article
深入
理解
ChatGPT
工作原理...
ChatGPT
基于GPT(Generative Pre-training Transformer)架构,是一个预训练的大...
赞
踩
article
目标
检测
中的
IOU
和
C
IOU
原理讲解以及应用(附
测试代码
))...
上期讲解了
目标
检测
中的三种数据增强的方法,这期我们讲讲
目标
检测
中用来评估对象
检测
算法的
IOU
和
C
IOU
的原理应用以及代码...
赞
踩
article
在
Git
中创建
本地
分支
并
关联
远程
分支
_
git
新建
分支
并
关联
远程
分支
...
在
Git
中创建
本地
分支
并
关联
远程
分支
。_
git
新建
分支
并
关联
远程
分支
git
新建
分支
并
关联
远程
分支
...
赞
踩
article
Pyspark聚类
--
LDA
_
pyspark
lda
...
LDA
class
pyspark
.ml.clustering.
LDA
(featuresCol=‘features’, m...
赞
踩
article
HBU_
神经网络
与深度
学习
实验
12
循环
神经网络
:梯度爆炸
实验
_
循环
神经网络
实战实训报告...
本文为HBU_
神经网络
与深度
学习
实验
12
的
实验
报告_
循环
神经网络
实战实训报告
循环
神经网络
实战实训报告 ...
赞
踩
article
Unity
之C#端
使用
protobuf
_
unity
使用
protobuf
f 下载...
protobuf
全称Protocol Buffers,由Google推出的一种平台、语言无关的数据交互格式,目前
使用
最广...
赞
踩
article
《
Python
进阶系列》二十四:专门处理
JOSN
数据
的
JSON
模块_
python
json
持久化, ...
JSON
(JavaScript Object Notation)是一种轻量级
的
数据
交换格式,它是JavaScript
的
子...
赞
踩
article
2024最新
程序员
搞钱
平台
盘点
_
搞钱
的
路子网站...
本篇文章给大家盘点一下国内
的
程序员
可以靠远程接活儿
搞钱
的
一些
平台
。
_
搞钱
的
路子网站
搞钱
的
路子网站 ...
赞
踩
article
重磅!
Jira
停售
本地
版
,
中国
90%
客户
将无法使用...
近日
,
Atlassian 官方对外发布公告称
,
自2021年2月2日起将停止销售旗下
Jira
、Confluence 等系...
赞
踩
article
Stable
Diffusion
修复
老照片
-图生图_
stable
diffusion
人像
修复
...
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领...
赞
踩
article
中国国内首个突破100B超参的
开源
LLM
诞生了——
Qwen
110B
_
qwen
2.0
...
新发布的
Qwen
2.5 与前身
Qwen
2.0
相比,在推理、代码理解和文本理解方面有了显著的进步,现在可以通过 Mo...
赞
踩
article
Uniapp
小
程序
订阅
推送(
一次性
订阅
)_
uni
.
requestsubscribemessage
...
一次性
订阅
发送后,就无效了,需要用户再次点击同意
订阅
。_
uni
.
requestsubscribemessage
uni
.r...
赞
踩
article
gitee
使用之
Pull
Request
_
gitee
pull
request...
记录一下在
gitee
中创建issue和
Pull
Request
的过程:···1.
gitee
中创建issue2.本地提交代...
赞
踩
article
6月
GitHub
上最牛逼的10个
Java
开源
项目
,号称“
Star
收割机“_
java
开源
项目
排行榜
...
现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包
项目
,一直在小公司,技术...
赞
踩
article
微信
小
程序
实战——
校园
导览
0x1
校园
简介_
校园
导览
微信
小
程序
代码
...
编辑
校园
简介页面轮播图新建resource文件夹=》新建images文件夹=》将要轮播的图片放在该目录下页面
赞
踩
article
【微信
小
程序
创作之路】-
小
程序
常用
页面
样式
_微型
小
程序
前端
常用
界面...
本章节主要讲解,
小
程序
中
常用
样式
,涉及到WXML和WXSS文件。例如:
页面
布局、整体
样式
、按钮、图片轮播、条件渲染(wx...
赞
踩
article
中文
性能全面超越GPT-4!
阿里
发布
通义
千问
2.5
,登顶
中文
最强大
模型
_
阿里
gpt
通义
千问
...
通义
千问
系列
模型
的开源节奏紧凑,自去年8月以来,沿着“多模态、全尺寸”开源的路线,已经推出了多款不同参数规格的开源
模型
,...
赞
踩
相关标签
hive
hive安装
计算机保研
人工智能
chatgpt
NLP
深度学习
算法
计算机视觉
机器学习
git
聚类
神经网络
rnn
unity
c#
protobuf
protoc
protobuf-net
json
python
开发语言
网络安全
网络
运维