尚硅谷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.mzph.cn/news/730577.shtml

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

相关文章

Typescript 哲学 morn on funtion

函数重载 overload 有一些编程语言&#xff08;eg&#xff1a;java&#xff09;允许不同的函数参数&#xff0c;对应不同的函数实现。但是&#xff0c;JavaScript 函数只能有一个实现&#xff0c;必须在这个实现当中&#xff0c;处理不同的参数。因此&#xff0c;函数体内部就…

2024蓝桥杯每日一题(前缀和)

一、第一题&#xff1a;壁画 解题思路&#xff1a;前缀和贪心枚举 仔细思考可以发现B值最大的情况是一段连续的长度为n/2上取整的序列的累加和 【Python程序代码】 import math T int(input()) for _ in range(1,1T):n int(input())s input()l math.ceil(len(s)/…

人工智能在日常生活中的应用

在我们的日常生活中&#xff0c;人工智能已经成为一种无处不在的力量&#xff0c;从智能家居到在线助手&#xff0c;再到高度个性化的服务和推荐&#xff0c;它无声地改变着我们的生活方式和习惯。随着技术的不断进步和普及&#xff0c;人工智能正以前所未有的速度和规模渗透到…

JVM-垃圾收集器G1

G1垃圾回收器 概述&#xff1a; 是一款面向服务器的垃圾收集器,主要针对配备多个处理器及大容量内存的机器. 以极高效率满足GC停顿时间要求的同时,还具备高吞吐量性能特征.G1保留了年轻代和老年代的概念&#xff0c;但不再是物理隔阂了&#xff0c;它们都是&#xff08;可以不连…

在别的地方下载的二次封装Windows镜像怎么安装?GHO镜像详细安装教程

前言 在系统之家或者其他地方下载的镜像文件怎么装到电脑上&#xff1f; 首先要知道系统之家下载的Windows镜像文件基本上都是.iso结尾的&#xff0c;要进入到对应镜像包才能看出系统镜像是什么格式。 如何分辨镜像的格式 选择对应的.iso镜像&#xff0c;点击【鼠标右键】-【装…

《UE5_C++多人TPS完整教程》学习笔记26 ——《P27 在线会话测试(Testing An Online Session)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P27 在线会话测试&#xff08;Testing An Online Session&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&#xff0…

【OJ比赛日历】快周末了,不来一场比赛吗? #03.09-03.15 #13场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2024-03-09&#xff08;周六&#xff09; #6场比赛2024-03-10…

Python笔记|基础算数运算+数字类型(1)

重新整理记录一下python的基础知识 基础运算符 、-、*、/ &#xff1b;括号 ()用来分组。 >>>2 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 1.6向下取整除法&#xff1a;向下舍入到最接近的整数的数学除法。运算符是 //。比如1…

【趣味项目】2048 简单实现

【趣味项目】2048 简单实现 算法原理 假设用一个二维矩阵表示 2048 页面&#xff0c;操作是左滑 const matrix [[2, 2, 4, 0],[0, 2, 4, 0],[0, 2, 2, 0],[2, 4, 4, 8] ];将所有非空的数字向左移动 matrix [[2, 2, 4, 0],[2, 4, 0, 0],[2, 2, 0, 0],[2, 4, 4, 8] ]将相邻的…

自动化工程师涨薪难,原因出在这里

大家好&#xff0c;今天说说真实的工控行业&#xff0c;摒弃虚无的鸡汤&#xff0c;聊点实在的。 举个例子&#xff0c;某工做销售&#xff0c;卖电控器件&#xff0c;眼见PLC收入可观&#xff0c;开始感到压力。于是&#xff0c;他下定决心学PLC&#xff0c;报了培训班。毕业后…

手写简易操作系统(一)--环境配置

本专栏是我新开设的一个学术专栏&#xff0c;旨在全面介绍手写操作系统的相关内容。其中包括实模式向保护模式的过渡、锁机制、信号量操作、内存分配、硬盘驱动、文件系统、简单shell和管道等操作系统核心知识。该专栏旨在为有意开发自己操作系统的研究人员提供指导与帮助。作为…

昏暗场景增强-低照度增强-弱光增强(附代码)

引言 随着现代科技的发展&#xff0c;图像采集设备已经渗透到生活的方方面面&#xff0c;然而在昏暗场景、低照度或弱光条件下&#xff0c;图像的质量往往受到严重影响&#xff0c;表现为亮度不足、对比度低下、色彩失真以及细节丢失等问题。这类图像对于人眼识别和计算机视觉…

【NR技术】 3GPP支持无人机的关键技术以及场景

1 背景 人们对使用蜂窝连接来支持无人机系统(UAS)的兴趣浓厚&#xff0c;3GPP生态系统为UAS的运行提供了极好的好处。无处不在的覆盖范围、高可靠性和QoS、强大的安全性和无缝移动性是支持UAS指挥和控制功能的关键因素。与此同时&#xff0c;监管机构正在调查安全和性能标准以及…

C++进阶之路---继承(二)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、继承与友元 友元关系不能继承&#xff0c;也就是说基类友元不能访问子类私有和保护成员。 class Student; class Per…

leetcode 热题 100_除自身以外数组的乘积

题解一&#xff1a; 前缀 / 后缀数组&#xff1a;某元素除自身以外的乘积&#xff0c;也就是其全部前缀元素乘积 * 全部后缀元素乘积&#xff0c;因此我们可以构造前缀数组和后缀数组&#xff0c;分别存储前i个元素的成绩和后i个元素的乘积&#xff0c;再将i-1前缀乘积 * i1后缀…

SpringBoot整合Redis实现分布式锁

SpringBoot整合Redis实现分布式锁 分布式系统为什么要使用分布式锁&#xff1f; 首先&#xff0c;分布式系统是由多个独立节点组成的&#xff0c;这些节点可能运行在不同的物理或虚拟机器上&#xff0c;它们通过网络进行通信和协作。在这样的环境中&#xff0c;多个节点可能同…

Java数组常用操作

创建数组 int[] a {1,2,3};int[] a new int[]{1,2,3};int[] a new int[3];ArrayList<Integer> arr new ArrayList<>(); 添加元素 arr.add(99); //将99加入到数组末尾arr.add(3,99); //将99加入到指定索引3处访问元素 int c1 c[1]; int arr1 arr.get(1); …

方阵的特征值与特征向量

目录 特征值 & 特征向量 相关性质 特征值 & 特征向量 相关性质

BlackHole

BlackHole 文章目录 BlackHole一、关于 BlackHole功能描述 二、安装、卸载安装方式一&#xff1a;下载安装器方式二&#xff1a;使用 Homebrew 安装 卸载方式一&#xff1a;使用卸载器方式二&#xff1a;手动卸载 三、用户使用指南1、Logic Pro X2、GarageBand3、Reaper4、录制…

MRI基础--k空间

k空间定义 k空间是表示 MR 图像中空间频率的数字数组。 k空间物理意义 k 空间的单元通常显示在主轴 kx 和 ky 的矩形网格上。 k 空间的 kx 和 ky 轴对应于图像的水平 (x) 和垂直 (y) 轴。然而,k 轴表示 x 和 y 方向上的空间频率而不是位置。 k 空间中的各个点 (kx,ky) 与图像…