尚硅谷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 复习

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

植物病虫害:YOLO玉米病虫害识别数据集

玉米病虫害识别数据集&#xff1a;玉米枯萎病&#xff0c;玉米灰斑病&#xff0c;玉米锈病叶&#xff0c;粘虫幼虫&#xff0c;玉米条斑病&#xff0c;黄二化螟&#xff0c;黄二化螟幼虫7类&#xff0c;yolo标注完整&#xff0c;3900多张图像&#xff0c;全部原始数据&#xff…

学习人工智能:吴恩达《AI for everyone》2019 第4周:歧视,攻击,发展中国家,就业

吴恩达 Andrew Ng&#xff0c; 斯坦福大学前教授&#xff0c;Google Brain项目发起人、领导者。 Coursera 的联合创始人和联合主席&#xff0c;在 Coursera 上有十万用户的《机器学习》课程&#xff1b;斯坦福大学计算机科学前教授。百度前副总裁、前首席科学家&#xff1b;谷…

WPF 消息提示 类似toast方式

WPF里面的消息提示一般都是MessageBox.Show()&#xff0c;这种样式不是很好看&#xff0c;所以就想办法重新搞了一个类似弹出消息的功能。原理很简单&#xff0c;就是弹出一个新窗体&#xff0c;然后等几秒窗体自动关闭。 先上效果图&#xff1a; 新建一个MsgHelper.cs类&…

Linux文件与文件系统的压缩

文章目录 Linux文件与文件系统的压缩Linux系统常见的压缩命令gzip&#xff0c;zcat/zmore/zless/zgrepbzip2&#xff0c;bzcat/bzmore/bzless/bzgreppxz&#xff0c;xzcat/xzmore/xzless/xzgrepgzip&#xff0c;bzip2&#xff0c;xz压缩时间对比打包命令&#xff1a;tar打包命令…

window vscode安装node.js

window vscode安装node.js 官网下好vscode 和nodejs 选.msi的安装 点这个安装 下载完 继续安装 完毕后倒杯水喝个茶等2分钟 重启VScode 或者在cmd 运行 npm -v node -v 显示版本号则成功

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架) 大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而&#xff0c;对于非AI专家来说&#xff0c;制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。现有的提示…

Flink 物理执行图

文章目录 物理执行图一、Task二、ResultPartition三、ResultSubpartition四、InputGate五、InputChannel 物理执行图 JobManager根据ExecutionGraph对作业进行调度&#xff0c;并在各个TaskManager上部署任务。这些任务在TaskManager上的实际执行过程就形成了物理执行图。物理…

【目标检测实验系列】AutoDL线上GPU服务器租用流程以及如何用Pycharm软件远程连接服务器进行模型训练 (以Pycharm远程训练Yolov5项目为例子 超详细)

目录 1. 文章主要内容2. 租用AutoDL服务器详细教程2.1 注册AutoDL账号&#xff0c;并申请学生认证(学生认证有优惠&#xff0c;如果不是学生可以忽略此点)2.2 算力市场选择GPU&#xff0c;并选择初始化配置环境2.3 控制台参数解析&#xff0c;并使用相关参数登录Xftp(Windows与…

【蓝桥杯】k倍区间

一.题目描述 二.问题分析 对于该问题&#xff0c;标签上写的是暴力&#xff0c;但是如果使用暴力的话&#xff0c;会超时。 首先&#xff0c;对于两个数a&#xff0c;b&#xff08;假设a小于b&#xff09;&#xff0c;若a与b对k取余后结果相同&#xff0c;则b-a可以整除k。 …

ubuntu 卸载miniconda3

一开始安装路径错了&#xff0c;需要重新安一次&#xff0c;就一起记录了。 前提是这种方式安装&#xff1a; ubuntu安装miniconda3管理python版本-CSDN博客 删除Miniconda的安装目录 这目录就是你选择安装的时候指定的&#xff0c;如果记不得了,可以这样查看 which conda 这…

flink重温笔记(十二): flink 高级特性和新特性(1)——End-to-End Exactly-Once(端到端精确一致性语义)

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第 12 天啦&#xff01;学习了 flink 高级特性和新特性之 End-to-End Exactly-Once&#xff08;端到端精确一致性语义&#xff09;&#xff0c;主要是解决大数据领域数据从数据源到数据落点的一致性&#xff0c;不会容易造成…

Python编程实验六:面向对象应用

目录 一、实验目的与要求 二、实验内容 三、主要程序清单和程序运行结果 第1题 第2题 四、实验结果分析与体会 一、实验目的与要求 &#xff08;1&#xff09;通过本次实验&#xff0c;学生应掌握类的定义与对象的创建、类的继承与方法的覆盖&#xff1b; &#xff08;2…

基于SSM技术的分布式销售平台设计与实现

目 录 摘 要 I Abstract II 1 绪论 1 1.1 课题研究背景与意义 1 1.2 国内外研究现状 1 1.2.1 国外研究现状 1 1.2.2 国内研究现状 2 1.3 本章小结 2 2 工程开发技术介绍 3 2.1 Web前端技术栈 3 2.1.1 HTML&CSS 3 2.1.2 jQuery 3 2.1.3 JSP 3 2.2 服务端开发技术栈 3 2.2.1…

【Linux】第一个小程序--进度条

这篇博客要综合利用以前的知识&#xff0c;来实现一个进度条程序~ 目录 换行&回车 缓冲区 实现简单的倒计时 实现进度条 version1 version2 在开始写这个小程序之前&#xff0c;我们先学习一些预备知识&#xff1a; 换行&回车 缓冲区 在我们运行这个程序时&…

基于R语言lavaan结构方程模型(SEM)技术应用

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;是分析系统内变量间的相互关系的利器&#xff0c;可通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、…

Mysql中的MVCC

”真正学会&#xff0c;如你般自由~“ MVCC机制简介 MVCC(Multi-Version-Concurrency-Control)多版本并发控制&#xff0c;MVCC 是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff1b;在编程中实现事务内存。 取自 MVCC存在被…

图片编辑器tui-image-editor

提示&#xff1a;图片编辑器tui-image-editor 文章目录 前言一、安装tui-image-editor二、新建components/ImageEditor.vue三、修改App.vue四、效果五、遇到问题 this.getResolve is not a function总结 前言 需求&#xff1a;图片编辑器tui-image-editor 一、安装tui-image-ed…

【李沐精读系列】GPT、GPT-2和GPT-3论文精读

论文&#xff1a; GPT&#xff1a;Improving Language Understanding by Generative Pre-Training GTP-2&#xff1a;Language Models are Unsupervised Multitask Learners GPT-3&#xff1a;Language Models are Few-Shot Learners 参考&#xff1a;GPT、GPT-2、GPT-3论文精读…

javaSE-----继承和多态

目录 一.初识继承&#xff1a; 1.1什么是继承&#xff0c;为什么需要继承&#xff1a; 1.2继承的概念与语法&#xff1a; 二.成员的访问&#xff1a; 2.1super关键字 2.2this和super的区别&#xff1a; 三.再谈初始化: 小结&#xff1a; 四.初识多态&#xff1a; 4.1多…

100. 相同的树

代码实现&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool compare(struct TreeNode *tree1, struct TreeNode *tree2) {if (tree1 NULL && tree2 ! NU…