尚硅谷JavaScript高级学习笔记
01 准备
JavaScript中函数是对象。我们后续描述构造函数的内存模型时,会将构造函数称为构造函数对象。
02 数据类型
typeof 运算符来查看值的类型,它返回的是类型的字符串值


== 会做数据转换


03 相关问题

04数据_变量_内存


05相关问题1






06相关问题2
07对象




08函数




09回调函数


10 lIFE


11 函数中的this




12 关于语句分号问题

13 webstorm设置
14 复习
15、函数的prototype

function Func() { }
console.log(Func);
console.log(Func.prototype);
输出:

每个函数都有一个prototype属性,它默认指向一个0bject空对象(即称为:原型对象)
function Func() { }
console.log(Func.prototype.constructor === Func);// true
console.log(Date.prototype.constructor === Date);// true

给原型对象添加属性、方法,函数的所有实例对象自动拥有原型中的属性(方法)
function Func() { }
Func.prototype.name = "LCM";
Func.prototype.hello = function(){console.log("hello world!");
}
let f = new Func();
console.log(f.name);//LCM
console.log(f.hello());//hello world!
16、显式原型和隐式原型

function Fun(){}console.log(Fun.prototype);let f = new Fun();console.log(f.__proto__);console.log(Fun.prototype === f.__proto__);

__proto__ 和 prototype中保存的都是原型对象的地址值。
Fun的prototype、f的__proto__属性什么时候加的?
JavaScript引擎在解析Fun代码的时候就创建了(内部代码应该是:this.prototype={});
f的__proto__在new创建对象的时候加的(this.proto = Fun.prototype )

17、原型链




⭐️⭐️⭐️⭐️⭐️ 记住:实例对象的隐式原型等于构造函数的显式原型;
所有函数对象的隐式原型都是一样的,都是Function对象的原型对象,因为都是new Function产生的();
⭐️⭐️⭐️⭐️⭐️特殊:Function对象的隐式原型和显式原型是同一个
Object构造函数对象的隐式原型也是Function的显式原型。也就是说Object的构造函数对象也是new Funtion()创建的。

18 原型链-补充

19 原型链属性问题

20 探索instanceof

instanceof的作用:左面对象是不是右面构造函数对象的实例

21 原型- 面试题
题1

题2
function Foo() { }Object.prototype.f1 = function () {console.log("f1()");
}
Object.prototype.f2 = function () {console.log("f2()");
}let f = new Foo();
f.f1();// => f1()
f.f2();// => f1()Foo.f1();// => f1()
Foo.f2();// => f1()
22 变量提升与函数提升

22.1 变量提升
var a = 3;
function fn() {console.log(a);// undefinedvar a = 4;
}
fn();
输出undefined,因为上面代码会转化为下面的代码,变量做了提升
var a = 3;
function fn() {var a;console.log(a);// undefineda = 4;
}
fn();
22.1函数提升
23 执行上下文

⭐️⭐️⭐️⭐️⭐️
执行第一行代码前,JavaScript已经准备好了全局上下文,并已经在window对象中添加了属性和方法。注意:此时还没有给对象赋值,方法
23.1 全局执行上下文

23.2 函数执行上下文

调用函数时
第1步:在准备执行函数体之前,会在调用栈创建一个栈帧压入调用栈中。一个函数对应一个栈帧
第2步:对局部数据进行预处理
(1)形參变量==>赋值(实参)>添加为执行上下文的属性
(2)arguments>赋值(实参列表),添加为执行上下文的属性
(3)var定义的局部变量==>undefined,添加为执行上下文的属性
(4)function声明的函数 >赋值(fun),添加为执行上下文的方法水
(5)this>赋值(调用函数的对象)
第3步:开始执行函数体代码

24 执行上下文栈





25 面试题
26 复习
27 作用域与作用域链






自己的作用找不到就向上面的作用域找,一直找到最顶层-全局上下文中。
作用域链



28作用域_面试题


29 循环遍历加监听



/* 闭包 */
for (let i = 0; i < buttons.length; i++) {(function (i) {//这里的i是局部变量buttons[i].onclick = function () {alert("第" + (i + 1) + "按钮")}})(i)// 这里的i是全局变量
}
30 闭包理解

什么时候产生闭包,外部函数调用时,包含外部函数数据的内部函数被解析了,此时会产生闭包。
31 常见的闭包

32 闭包的作用

33 闭包的生命周期


34 [闭包,应用_自定义JS模块

(1)方式1


(2)方式2

34-1 闭包的缺点-内存溢出和内存泄漏



35 内存溢出与内存泄露


36 面试题
题1

题2

37 对象创建模式
(1)Object构造函数模式

(2)对象字面量模式





(5)

38 原型链继承
(1) 原型链继承



39 组合继承
(2)借用构造函数


(3)原型链 + 借用构造函数


40 复习
41 闭包终极面试题
42 进程与线程
43 浏览器内核


44 定时器引发的思考


45 js是单线程执行的

46 事件循环模型




47 H5 web Workers多线程





48 复习

相关文章:
尚硅谷JavaScript高级学习笔记
01 准备 JavaScript中函数是对象。我们后续描述构造函数的内存模型时,会将构造函数称为构造函数对象。 02 数据类型 typeof 运算符来查看值的类型,它返回的是类型的字符串值 会做数据转换 03 相关问题 04数据_变量_内存 05相关问题1 06相关问题2 …...
六、长短时记忆网络语言模型(LSTM)
为了解决深度神经网络中的梯度消失问题,提出了一种特殊的RNN模型——长短期记忆网络(Long Short-Term Memory networks, LSTM),能够有效的传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被忽略。 长短时记忆网络原理…...
Filter过滤器+JWT令牌实现登陆验证
一、背景 我们需要在客户端访问服务器的时候给定用户一定的操作权限,比如没有登陆时就不能进行其他操作。如果他需要进行其他操作,而在这之前他没有登陆过,服务端则需要将该请求拦截下来,这就需要用到过滤器,过滤器可以…...
SQL学习十八~十九
...
2024 AI 辅助研发的新纪年
随着人工智能技术的持续发展与突破,2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计,从软件开发到材料科学,AI正逐渐渗透到研发的各个环节,变革着传统的研发模式。在这一背景下,AI辅助研发不仅…...
【牛客】HJ87 密码强度等级 CM62 井字棋
题目一:密码强度等级 题目链接:密码强度等级_牛客题霸_牛客网 (nowcoder.com) 本题主要考察C语言中逻辑分支语句,基本语句以及对各种特殊字符 ,ASCII值以及条件表达中的逻辑运算符关系运算符各自功能的理解,以及基本使用&#x…...
【论文速读】 | DeGPT:通过大语言模型优化反编译器输出
本次分享论文为:DeGPT: Optimizing Decompiler Output with LLM 基本信息 原文作者:Peiwei Hu, Ruigang Liang, Kai Chen 作者单位:中国科学院信息工程研究所;中国科学院大学网络空间安全学院 关键词:反向工程&…...
【DP】蓝桥杯第十三届-费用报销
#include<iostream> #include<algorithm> #include<cstring> #include<set> #include<queue> using namespace std; const int N1010; int dp[N][5010];//dp[i][j]:选到第i个物品是否能取到价值j; int month[13]{0,31,28,31,30,31,30…...
15. C++泛型与符号重载
【泛型编程】 若多组类型不同的数据需要使用相同的代码处理,在C语言中需要编写多组代码分别处理,这样做显然太过繁琐,C增加了虚拟类型,使用虚拟类型可以实现一组代码处理多种类型的数据。 虚拟类型是暂时不确定的数据类型&#…...
老司机都懂的!【打赏】完美运营的最新视频打赏系统
完美运营的最新视频打赏系统优于市面上95%的打赏系统,与其他打赏系统相比,功能更加强大,完美运营且无bug。支付会调、短链接生成、代理后台、价格设置和试看功能等均没有问题。 以上为原简介,经测试验证。成功搭建并可以正常进入…...
JavaWeb笔记 --- 二、Maven
二、Maven Maven概述 所有的IDE创建的Maven项目都可以使用 Maven简介 Maven模型 Maven常用命令 Maven生命周期 Maven坐标 依赖管理 dpendencies:依赖 依赖范围...
【C++】C++11---右值引用和移动语义
目录 1、什么是左值引用和右值引用2、左值引用与右值引用比较3、右值引用使用场景和意义4、右值引用引用左值的分析5、完美转发 1、什么是左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现在开始我们之前学习…...
消息队列-kafka-消息发送流程(源码跟踪) 与消息可靠性
官方网址 源码:https://kafka.apache.org/downloads 快速开始:https://kafka.apache.org/documentation/#gettingStarted springcloud整合 发送消息流程 主线程:主线程只负责组织消息,如果是同步发送会阻塞,如果是异…...
机器学习笔记 计算机视觉中的测距任务常见技术路线
一、计算机视觉中的测距任务 测距是计算机视觉中的一项关键任务,涉及测量物体和相机之间的距离。这些信息可用于多种应用,包括机器人、自动驾驶汽车和增强现实。测距技术有很多种,包括主动式和被动式,每种技术都有自己的优点和局限性。主动测距技术,例如飞行时间、结构光和…...
云计算 3月8号 (wordpress的搭建)
项目wordpress 实验目的: 熟悉yum和编译安装操作 锻炼关联性思维,便于以后做项目 nginx 编译安装 1、安装源码包 [rootlinux-server ~]# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel [rootlinux-server ~]# wget http://nginx.…...
【CSS】(浮动定位)易忘知识点汇总
浮动特性 加了浮动之后的元素,会具有很多特性,需要我们掌握的. 1、浮动元素会脱离标准流(脱标:浮动的盒子不再保留原先的位置) 2、浮动的元素会一行内显示并且元素顶部对齐 注意: 浮动的元素是互相贴靠在一起的(不会有缝隙)&…...
Vitual Box虚拟机打开后,键盘鼠标失效
Vitual Box虚拟机打开后,键盘鼠标失效 作者在使用Vitual Box虚拟机软件时,偶然发现打开VitualBox后,鼠标和键盘均无法使用。 你以为是“主机热键”引起的?NO! 废话少说 直接上干货: 在VitualBox设置下有…...
宠物空气净化器值得入手吗?选购宠物空气净化器关注哪些方面?
一开始养猫时,每天看着可爱的猫咪在家里快乐奔跑,让人心情愉悦。然而,作为铲屎官都知道,猫咪会掉毛,特别是在换毛期间,地板、沙发上都会有一大堆猫毛,甚至衣服也可能沾满猫毛。养猫家庭中&#…...
前端发起请求,后端模型需处理很久,怎样设置前端直接完成请求响应,后端计算完在返回结果给前端?
在这种情况下,可以采用异步处理的方式来解决。具体步骤如下: 前端发起请求:前端向后端发送请求,但是不等待后端处理完成而是立即得到响应。 后端异步处理:后端接收到请求后,不立即进行处理,而是…...
DDD领域驱动设计
一、什么是领域驱动设计DDD 领域驱动设计(Domain-Driven Design,DDD)是一种软件开发方法论,它提出了一组关于如何设计和构建软件系统的原则和方法。 二、DDD的诞生是为了解决哪些问题 对复杂业务领域的理解不足:传统…...
揭秘.NET 11原生AI推理引擎:如何绕过ML.NET抽象层直击TensorRT/ONNX Runtime调度内核?
第一章:.NET 11原生AI推理引擎的架构演进与定位.NET 11 将 AI 推理能力深度融入运行时层,首次在框架级提供原生、跨平台、低开销的模型加载与执行支持,不再依赖外部 Python 运行时或独立推理服务。这一转变标志着 .NET 从“AI 应用宿主”正式…...
别再只会用轮询了!GD32F103 USART中断与DMA传输实战对比(附代码)
GD32F103 USART通信三剑客:轮询、中断与DMA的实战抉择 在嵌入式开发中,串口通信就像空气一样无处不在——调试信息输出、传感器数据采集、设备间通信都离不开它。但很多开发者停留在最基础的轮询方式,就像只会用螺丝刀却面对一整套精密工具。…...
如何在Linux上构建专业的Jellyfin媒体播放中心?
如何在Linux上构建专业的Jellyfin媒体播放中心? 【免费下载链接】tsukimi A simple third-party Jellyfin client for Linux 项目地址: https://gitcode.com/gh_mirrors/ts/tsukimi Tsukimi是一款专为Linux系统设计的第三方Jellyfin客户端,采用GT…...
real-anime-z多场景落地:同模型生成头像、竖版角色图、横版宣传海报
real-anime-z多场景落地:同模型生成头像、竖版角色图、横版宣传海报 1. 平台介绍与核心能力 real-anime-z是一款专为二次元创作设计的文生图AI工具,能够帮助用户快速生成高质量的动漫风格图像。不同于通用型AI绘画工具,它针对动漫创作场景进…...
5大核心功能深度解析:NVIDIA Profile Inspector显卡驱动配置完全指南
5大核心功能深度解析:NVIDIA Profile Inspector显卡驱动配置完全指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款专业的显卡驱动配置工具,能…...
Qwen2.5-14B-Instruct微调关键点:Pixel Script Temple中对白张力建模方法解析
Qwen2.5-14B-Instruct微调关键点:Pixel Script Temple中对白张力建模方法解析 1. 项目背景与核心价值 Pixel Script Temple是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个独特的创作环境将先进的大语言模型能力与8-Bit复古美学设计相结合&#…...
别让PCB布局毁了你的DCDC电源!实测输入电容放错位置,纹波暴增10倍
别让PCB布局毁了你的DCDC电源!实测输入电容放错位置,纹波暴增10倍 在调试一块高性能嵌入式主板的电源系统时,工程师小张遇到了诡异的现象:采用相同型号的DCDC电源芯片,参考设计标称输出纹波≤20mV,但实际测…...
uni-app怎么获取WiFi列表 uni-app手机连接WiFi信息查询【教程】
getWifiList返回空因未走完完整流程:需先startWifi初始化,再注册onGetWifiList监听回调,且真机必须开启定位权限并配置requiredPrivateInfos白名单。uni-app里getWifiList为什么总返回空?因为没走完完整流程:微信小程序…...
智慧树刷课插件终极指南:如何3步实现视频自动化学习,效率翻倍![特殊字符]
智慧树刷课插件终极指南:如何3步实现视频自动化学习,效率翻倍!🚀 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为…...
RoadDefectNet 系统采用前后端分离架构,结合了计算机视觉(YOLO)与Web 业务逻辑(Django + Vue3) 智慧交通道-路缺陷检测系统 Django+Vue3 巡检维修管理平台
智慧交通道-路缺陷检测系统 DjangoVue3 巡检维修管理平台 RoadDefectNet 道路缺陷智能检测系统全套源码,基于 YOLO 深度学习模型,支持路面病害单图、批量、视频、摄像头实时检测,自动识别统计缺陷类型与数量。采用 Django 后端 Vue3 前端前…...
