Web 前端基础—— JavaScript 学习笔记

devtools/2024/9/19 18:50:59/ 标签: 前端, javascript, 学习

1、JavaScript 有几种数据类型

基本数据类型:undefined、null、boolean、number、string、symbol(es6的新数据类型)

引用数据类型:object、array、function

2、怎么进行数据类型检测

typeof可以检测 除了 null 以外的基础数据类型,typeof 对于对象来说,除了函数都会显示 objec Object.prototype.toString.call()可以检测所有的数据类型

3、 get 请求传参长度的误区

我们经常说 get 请求参数的大小存在限制,而 post 请求的参数大小是无限制的。实际上 HTTP 协 议从未规定 GET/POST 的请求长度限制是多少。对 get 请求参数的限制是来源与浏览器或 web 服 务器,浏览器或 web 服务器限制了 url 的长度。为了明确这个概念,我们必须再次强调下面几点: HTTP 协议 未规定 GET 和 POST 的长度限制

GET 的最大长度显示是因为 浏览器和 web 服务器限制了 URI 的长度

不同的浏览器和 WEB 服务器,限制的最大长度不一样

要支持 IE,则最大长度为 2083byte,若只支持 Chrome,则最大长度 8182byte

4、如何让事件先冒泡后捕获

在 DOM 标准事件模型中,是先捕获后冒泡。但是如果要实现先冒泡后捕获的效果,对于同一个事 件,监听捕获和冒泡,分别对应相应的处理函数,监听到捕获事件,先暂缓执行,直到冒泡事件被 捕获后再执行捕获之间。

5、说一下事件委托?

事件委托指的是,不在事件的发生地(直接 dom)上设置监听函数,而是在其父元素上设置监听 函数,通过事件冒泡,父元素可以监听到子元素上事件的触发,通过判断事件发生元素 DOM 的类 型,来做出不同的响应。

举例:最经典的就是 ul 和 li 标签的事件监听,比如我们在添加事件时候,采用事件委托机制,不 会在 li 标签上直接添加,而是在 ul 父元素上添加。

好处:比较合适动态元素的绑定,新添加的子元素也会有监听函数,也可以有事件触发机制。

6、说一下图片的懒加载和预加载?

预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。

懒加载:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。

两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。 懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。

7、mouseover 和 mouseenter 的区别?

mouseover:当鼠标移入元素或其子元素都会触发事件,所以有一个重复触发,冒泡的过程。对 应的移除事件是 mouseout

mouseenter:当鼠标移除元素本身(不包含元素的子元素)会触发事件,也就是不会冒泡,对应 的移除事件是 mouseleave

8、JS 的 new 操作符做了哪些事情?

new 操作符新建了一个空对象,这个对象原型指向构造函数的 prototype,执行构造函数后返回 这个对象。

9、改变函数内部 this 指针的指向函数(bind,apply,call 的区别)

通过 apply 和 call 改变函数的 this 指向,他们两个函数的第一个参数都是一样的表示要改变指向 的那个对象,第二个参数,apply 是数组,而 call 则是 arg1,arg2...这种形式。

通过 bind 改变 this 作用域会返回一个新的函数,这个函数不会马上执行。

10、箭头函


http://www.ppmy.cn/devtools/18318.html

相关文章

vue: vscode安装扩展Volar失败(保姆级教程+图文结合)

1 vscode插件离线下载vsix文件 2.1 打开vscode插件市场地址 ​​​​​​https://marketplace.visualstudio.com/search?termvue&targetVSCode&categoryAll%20categories&sortByRelevance 2.2 搜索插件,Vue.volar 1 2.3 下载vsix文件 打开 vetur插件地址&…

直播美颜工具与视频美颜SDK:技术深入探索

直播美颜工具和视频美颜SDK的出现,为直播平台和应用开发者提供了丰富的选择。本文将深入探讨这些技术的原理、应用和发展趋势。 一、美颜算法 直播美颜工具的核心在于其先进的美颜算法。这些算法通过对图像进行分析和处理,实时地修饰主播的面部特征&am…

智能合约区块应用链交易所系统教程开发搭建

智能合约区块应用链交易所系统开发搭建是一个复杂的过程,需要涉及到多个领域的知识和技能,包括区块链技术、智能合约开发、网络通信、数据库管理、前端开发等等。下面是一个大致的步骤,可以帮助你开始开发: 1. 确定系统需求和架构…

数据结构-KMP算法

KMP算法 简单的模式匹配算法 定义:子串的定位操作通常称为串的模式匹配,他求的是子串在主串中的位置过程 逐个字符比较 从主串指针 i 对应的字符和模式串指针 j 对应的字符开始,依次比较它们是否相等。若相等,则同时移动 i 和 j 向右一位,继续…

docker 故障解决

现象1: docker-compose up -d ERROR: failed to register layer: open /var/lib/docker/overlay2/dc1e26ac60d8b2ede5c4087d1b570407d5b056c13d86c0689799597217e174cc/committed: no such file or directory 解决办法: service docker stop service docker start 不管用。…

详细介绍gnomAD

字段含义介绍: https://www.biorxiv.org/content/biorxiv/early/2020/04/08/531210/DC1/embed/media-1.pdf?downloadtrue 版本更新 gnomAD v3.0 | MacArthur Lab

解决“ImportError: DLL load failed while importing _rust: 找不到指定的程序的问题

运行 scrapy startproject wikiSpider 报错:ImportError: DLL load failed while importing _rust: 找不到指定的程序。 经过尝试 可以更换Python解释器版本来解决 1、点击crtlalts打开设置 点击项目>解释器 选择3.11解释器 (我原来报错用的3.9的解…

BEC写作和其他英语写作有什么区别?成人学英语去哪里柯桥有专业培训吗?

BEC中级考试的写作与其他英语类考试略有不同。除考查考生的整体写作水平之外,它也考查考生处理日常商务活动及解决商务运作中出现问题的能力。测试题材与体裁均与商务信函有关,往往涉及以下内容: 商务信函:这里所涉及的信函往往是…

线程安全的单例模式

STL是不是线程安全的? 不是,STL只考虑高效 智能指针是不是线程安全的? 大部分智能指针是安全的。智能指针 说白了 就是 指针管理。 什么是单例呢? 单例模式在任何时候只允许类最终定义一个对象 为什么要提一提单例呢? 因为…

day03-(docker)

文章目录 DockerDocker和虚拟机的差别docker在linux安装配置镜像命令容器命令介绍Docker-容器(基本操作)docker基本操作(数据卷)数据卷挂载直接挂载四.Dockerfile自定义镜像五.Docker-Compose 安装修改权限镜像仓库![在这里插入图…

OCP Java17 SE Developers 复习题15(完)

答案 B, F. The Driver and PreparedStatement interfaces are part of the JDK, making options A and E incorrect. Option C is incorrect because we made it up. The concrete DriverManager class is also part of the JDK, making option D incorrect. Options B and…

GPT产业 行业研究报告合集整理

整理了一下目前现有的与GPT产业相关的研究报告合集,帮助大家深入地分析GPT产业的技术发展情况、判断GPT产业的未来发展趋势。 下载方式:关注、私信留言获取。或查看主页文章《常用的行业研究报告免费下载来源》,在研报之家下载。 报告数量&…

可视化+多人协同技术原理和案例分享

前言 hi,大家好,我是徐小夕,之前和大家分享了很多可视化低代码的技术实践,最近也做了一款非常有意思的文档搭建引擎——Nocode/Doc: 也做了一些分享: Nocode/Doc,可视化 零代码打造下一代文件编…

RAG原理及本地化实践

基于LLM的应用在问题回答、信息获取上发挥出了巨大作用。这些通用大模型训练的数据主要来源于互联网上的会话或者个别机构提供的数据,虽然能够提供类似人的交互对答,但是在针对某个特定领域的时候就显得不足。通用大模型在应用中主要有以下问题&#xff…

Jammy@Jetson Orin - Tensorflow Keras Get Started

JammyJetson Orin - Tensorflow & Keras Get Started 1. 源由2. 步骤3. 预期&展望4. 总结5. 参考资料 1. 源由 之前过年的时候,花了两周的时间过了一遍 《ubuntu22.04laptop OpenCV Get Started》。 后续更多的时间需要再GPU算法上下功夫,目前…

【面试题】s += 1 和 s = s + 1的区别

文章目录 1.问题2.发现过程3.解析 1.问题 以下两个程序真的完全等同吗? short s 0; s 1; short s 0; s s 1; 2.发现过程 初看s 1 和 s s 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书…

Servlet(写一个Hello Worldt)【一】

文章目录 一、Servlet 目的 ----- 实现动态页面二、编写一个 Servlet 的Hello World2.1 创建项目2.2 处理文件夹2.3 引入依赖2.4 手动创建一些必要的目录/文件2.5 编写代码2.6 打包程序2.7 部署2.8 验证程序是否能正常工作 一、Servlet 目的 ----- 实现动态页面 静态页面 VS 动…

小程序变更主体还要重新备案吗?

小程序迁移变更主体有什么作用?小程序迁移变更主体的作用可不止变更主体这一个哦!还可以解决一些历史遗留问题,比如小程序申请时主体不准确,或者主体发生合并、分立或业务调整等情况。这样一来,账号在认证或年审时就不…

Android EditText 的 属性android:digits 限制输入的字符

在android开发中,在某些场景中,需要限制用户输入的字符; 比如输入电话号码,只能输入数字,输入IPV4只能输入数字和“.”,IPV6只能输入数字字符和“:”,等等。 在Android EditText输…

第十五届蓝桥杯C/C++B组题解

第十五届蓝桥杯大赛软件类省赛C/C大学B组 赛题链接A握手问题B小球反弹C好数DR格式E宝石组合F数字接龙G爬山H拔河