![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript复盘重点总结
文章平均质量分 51
冰雪奇缘lb
这个作者很懒,什么都没留下…
展开
-
JavaScript 内存泄漏
js 内存泄漏什么是内存泄漏?程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。有些语言(比如 C 语言)必须手动释放内存,程序员负责内存管理。char * buffer;buffer = (char*) malloc(42);// Do somet原创 2021-12-28 14:09:54 · 7481 阅读 · 3 评论 -
JS(v8)垃圾回收机制
GC是什么GC 即 Garbage Collection ,程序工作过程中会产生很多 垃圾,这些垃圾是程序不用的内存或者是之前用过了,以后不会再用的内存空间,而 GC 就是负责回收垃圾的,它工作在引擎内部,对于我们前端来说,GC 过程是相对比较无感的。不是所有语言都有 GC,一般的高级语言里面会自带 GC,比如 Java、Python、JavaScript 等,也有无 GC 的语言,比如 C、C++ 等,那这种就需要我们程序员手动管理内存了,相对比较麻烦。JavaScript 自动垃圾收集机制编原创 2021-11-23 13:32:33 · 2677 阅读 · 0 评论 -
JavaScript原型继承
JavaScript原型继承JavaScript中原型可以实现类似于其他语言中的继承。示例一:// 父类型function Person() { this.name = 'zs'; this.age = 18; this.sex ='男';}// 子类型function Student() { this.score = 100;}student.prototype = new Person();Student.prototype.constructor = Student;原创 2021-07-19 17:04:19 · 109 阅读 · 2 评论 -
进程和线程 以及 JavaScript 执行栈
进程和线程进程(process): 程序的一次执行,它占有一片独有的内存空间,可以通过windows任务管理器查看进程。线程(thread):是进程内的一个独立执行单元,是程序执行的一个完整流程是CPU的最小的调度单元。应用程序必须运行在某个进程的某个线程上一个进程中至少有一个运行的线程:主线程,进程启动后自动创建一个进程中也可以同时运行多个线程,我们会说程序是多线程运行的一个进程内的数据可以供其中的多个线程直接共享多个进程之间的数据是不能直接共享的线程池(thread pool):保原创 2021-05-04 11:22:02 · 289 阅读 · 2 评论 -
JavaScript中的内存溢出和内存泄露
内存溢出概念:一种程序运行出现的错误,当程序运行需要的内存超过了剩余的内存时,就出抛出内存溢出的错误。举例:var obj = {}for (var i = 0; i < 10000; i++) { obj[i] = new Array(1000000000)}内存泄露概念:占用的内存没有及时释放,内存泄露积累多了就容易导致内存溢出。常见的内存泄露:(1)意外的全局变量(2)没有及时清理的计时器或回调函数*闭包举例:(1)意外的全局变量function fn原创 2021-05-04 09:17:43 · 226 阅读 · 0 评论 -
JavaScript中的instanceof()
instanceof是如何判断的?表达式: A instanceof B如果B函数的显式原型对象在A对象的原型链上,返回 true,否则返回 falseFunction 是通过 new 自己产生的实例instanceof() 只能判断是不是自己的实例对象,如果两个数据完全一样,返回false,例如:A instanceof A<script type="text/javascript"> function Foo() { } var f1 = new Foo() consol原创 2021-05-03 21:22:00 · 91 阅读 · 0 评论 -
JavaScript中的执行上下文
代码分类(位置)全局代码函数(局部)代码全局执行上下文在执行全局代码前将window确定为全局执行上下文。对全局数据进行预处理。(1)var定义的全局变量==>undefined,添加为window的属性。(2)function声明的全局函数==>赋值(fun),添加为window的方法。(3)this==>赋值(window)。开始执行全局代码。<script> // 全局执行上下文 console.log(a1, window.a1) a原创 2021-04-27 11:03:57 · 156 阅读 · 1 评论 -
JavaScript中的高阶函数和闭包
高阶函数高阶函数是对其他函数进行操作的函数,它接收函数作为参数或将函数作为返回值输出。此时fn就是一个高阶函数函数也是一种数据类型,同样可以作为参数,传递给另外一个参数使用。最典型的就是作为回调函数。举例<script> //高阶函数-函数可以作为参数传递 function fn(a, b, callback) { console.log(a + b); callback && callback(); } fn(1, 2, function() {原创 2021-04-24 10:57:01 · 201 阅读 · 0 评论 -
JavaScript中的构造函数
JavaScript中的构造函数构造函数︰是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new运算符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。一次创建一个对象,里面很多的属性和有法是大量相同的。因此我们可以利用函数的方法重复这些相同的代码我们就把这个函数成为构造函数。有因为这个函数不一样,里面封装的不是普通代码,而是对象。构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。构造函数的语法格式function原创 2021-04-24 10:34:19 · 231 阅读 · 0 评论 -
JavaScript中堆、栈空间
简单类型与复杂类型简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。值类型︰简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型string , number , boolean , undefined , null。引用类型∶复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等堆和栈堆栈空间分配区别:1、栈(操作系统)︰由操作系统自动分配释放存放原创 2021-04-23 22:45:09 · 598 阅读 · 8 评论 -
JavaScript中的内置对象
内置对象JavaScript中的对象分为3种: 自定义对象、内置对象、浏览器对象。前面两种对象是JS基础内容,属于ECMAScript; 第三个浏览器对象属于JS独有的。内置对象就是指S语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。内置对象最大的优点就是帮助我们快速开发。JavaScript提供了多个内置对象:Math、 Date . Array.string等。举例:<scscript> //格式化日期年月日var d原创 2021-04-23 21:43:11 · 137 阅读 · 1 评论 -
JavaScript中 类似 var a = b = c = 9; 声明变量
var a = b = c = 9;声明方式var a = b = c = 9;这种变量声明方式相当于 var a = 9; b = 9; c = 9;b和 c直接赋值没有var声明当全局变量看。集体声明方式:var a = 9, b = 9, c = 9; // 等价于var a = 9; var b = 9; var c = 9;案例f1();console.log(c); // 9console.log(b); // 9console.log (a); // 9functio原创 2021-04-22 21:55:18 · 275 阅读 · 0 评论 -
JavaScript中的预解析
JavaScript中的预解析预解析:JavaScript代码是由浏览器中的JavaScript解析器来执行的。JavaScript解析器在运行JavaScript代码的时候分为两步∶预解析和代码执行。我们js引擎运行js分为两步:预解析代码执行(1) 预解析 js引擎会把js里面所有的 var 还有 function 提升到当前作用域的最前面。(2)代码执行按照代码书写的顺序从上往下执行。预解析分为变量预解析(变量提升)和函数预解析(函数提升)(1)变量提升就是把所有的变量声明提升到当前的作原创 2021-04-22 21:29:05 · 65 阅读 · 0 评论 -
JavaScript中的数据类型转换
转换为数字型parseInt(变量)可以把字符型的转换为数字型得到是整数。console.log(parseInt( '3.14')); //3取整console.log(parseInt( '3.94')); // 3取整console.log(parseInt( '120px')); // 120会去到这个px单位console.log(parseInt( 'rem120px ')); // NaNparseFloat(变量)可以把字符型的转换为数字型得到是小数浮点数。cons原创 2021-04-22 20:40:12 · 136 阅读 · 3 评论 -
JavaScript原型 prototype
JavaScript原型原型对象:我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype,这个属性对应着一个对象,这个对象就是我们所谓的原型对象。function Myclass(){}var mc = new Myclass();console.log(Myclass.prototype);如果函数作为普通函数调用prototype没有任何作用,当函数以构造函数的形式调用时,它所创建的对象中都会有一个隐含的属性,指向该构造函数的原型对象,我们可以通过__proto__原创 2021-04-22 20:14:21 · 133 阅读 · 0 评论 -
JSON
JSONJS中的对象只有JS自己认识,其他的语言都不认识。JSON就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别,并且可以转换为任意语言中的对象,JSON在开发中主要用来数据的交互。JSON:Javascript object Notation JS对象表示法。JSON和JS对象的格式一样,只不过JSON字符串中的属性名必须加双引号其他的和JS语法一致。JSON分类:对象 {}数组 []SON中允许的值:字符串数值布尔值null对象原创 2021-04-19 21:51:08 · 72 阅读 · 1 评论 -
JavaScript对CSS类的操作
JavaScript对CSS类的操作作用:一行代码,可以同时修改多个样式,修改box的class属性。通过修改元素的class属性来间接的修改样式。这样一来,只需要修改一次,即可同时修改多个样式。优点:浏览器只需要重新渲染页面一次,性能比较好。并且这种方式,可以使表现和行为进一步的分离。举例如下:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>BO原创 2021-04-19 20:52:35 · 106 阅读 · 0 评论 -
JavaScript中setInterval()和setTimeout()
setInterval()——定时调用使用:可以将一个函数,每隔一段时间执行一次。参数:回调函数,该函数会每隔一段时间被调用一次。每次调用间隔的时间,单位是毫秒。返回值: 返回一个Number类型的数据, 这个数字用来作为定时器的唯一标识。clearInterval():可以用来关闭一个定时器。var num = 1;var timer = setInterval(function( ){count.innerHTML = num++;, 1000);// console.log原创 2021-04-19 20:25:25 · 150 阅读 · 0 评论 -
JavaScript中的BOM对象
BOM——浏览器对象模型BOM可以使我们通过JS来操作浏览器。在BOM中为我们提供了一组对象,用来完成对浏览器的操作。BOM对象window:代表的是整个浏览器的窗口,同时window也是网页中的全局对象Navigator:代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器Location:代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面History:代表浏览器的历史记录,可以通过该对象来操作浏览器的历史记录。由于隐私原因,该对象原创 2021-04-19 20:07:53 · 103 阅读 · 1 评论 -
JavaScript事件对象和绑定多个事件
JavaScript事件对象事件对象:(1)当事件的响应函数被触发时,浏览器每次都会将一个事件作为实参传递进响应函数。(2)在事件对象中封装了当前事件的一切信息,比如:鼠标的坐标、键盘哪个键被按下、鼠标滚轮滚动的方向。onmousemove举例:该事件将会在元素移动中被触发注意:触发事件方法会有一个默认形参event,也就是事件对象<!DOCTYPE html><html> <head> <meta charset="utf-8"> &原创 2021-03-29 15:56:36 · 470 阅读 · 0 评论 -
JavaScript中DOM操作内联样式和查询元素样式
通过JS修改元素的样式语法:元素.style.样式名 = 样式值注意:(1)如果CSS的样式中含有-,这种名称在JS中是不合法的比如background-color,需要将这种样式名修改为驼峰命名法backgroundColor,去掉-,然后将-后的子母大写。(2)我们通过style属性设置的样式都是内联样式, 而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示。内联样举例:<div style="color: yellow"></div>(3)如果在样式中写了原创 2021-03-29 14:56:25 · 248 阅读 · 0 评论 -
JavaScript中for循环的运行特点
for循环会在页面加载完成之后执行,而响应函数在超链接被点击时才执行,当响应函数执行时,for循环早已执行完毕<body> <a href="javascript:;">链接1</a> <a href="javascript:;">链接2</a> <a href="javascript:;">链接3</a> </body> <script>原创 2021-03-29 09:59:06 · 220 阅读 · 0 评论 -
JavaScript中的冒泡事件和事件的委派
事件的冒泡所谓的冒泡指的就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同时间也会被触发,在开发中大部分情况冒泡都是有用的,如果不希望发生时间冒泡可以通过事件对象来取消冒泡 <body> <div id="div" style="width: 100px; height: 100px; background-color: black;"> <span id="span" style="background-colo原创 2021-03-28 15:35:25 · 286 阅读 · 0 评论 -
JavaScript DOM 元素(节点)
JavaScript DOM 元素(节点)注意:本文中提到两个关键字比较多:“节点”和“元素”,注意两者的区别:节点中包括空行、空格等非元素类节点,元素中不包框空白文档。(例如:parentObj.children与parentObj.childNodes有很大的不同,前者是返回该节点的子元素数组,不包括空格、空行。后者是返回子节点,包括空行,空行以文档格式返回。)1、通过父节点获取:(1)parentObj.firstChild:返回该节点(parentObj)的第一个子节点。(2)paren原创 2021-03-26 16:46:25 · 154 阅读 · 0 评论 -
JavaScript-dom对象常用方法
(1) document.getElementById(elementId):返回带有指定ID的元素。(2)document.getElementsByName(elementName):通过节点的name值获取节点,主要用于表单标签name属性元素的查找,例如:在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。(3)document.getElementsByTagName(tagName):返回包含带有指定标签名称(例如div、button等)的所有元素的节原创 2021-03-26 16:33:20 · 139 阅读 · 0 评论 -
JavaScript正则表达式
JavaScript正则表达式语法:var 变量 = new RegExp("正则表达式","匹配模式");使用typeof检查正则对象,会返回object在构造函数中可以传递一个匹配模式作为第二个参数, 可以是:i 忽略大小写g 全局匹配模式正则表达式的方法: test()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合返回true,否则返回false。var reg = new RegExp("a"); // 这个正则表达式可以用来检查一个字符串中是否含有a//原创 2021-03-23 17:55:38 · 138 阅读 · 0 评论 -
JavaScript中Date对象与时间戳
JavaScript Date 对象Date 对象用于处理日期和时间。创建 Date 对象的语法:var myDate=new Date() // Date 对象会自动把当前日期和时间保存为其初始值创建一个指定的时间对象:需要在构造函数中传递一个表示时间的字符串作为参数日期的格式: 月份/日/年 时:分:秒var d2 = new Date("12/03/2021 11:10:30");console.log(d2);时间戳时间戳:值得是从格林威治标准时间的1970年1月1原创 2021-03-22 17:08:08 · 506 阅读 · 0 评论 -
JavaScript中this的指向
以函数形式调用时,this指向window 举例: function pro1(){ console.log(this, "pro()的this指向"); // this指向window } // 调用方式: pro1();以方法形式调用时,this指向调用方法的对象举例: var obj = { pro2(){ console.log(this, "pro2()的this指向"); } } // 调用方式 o.原创 2021-03-22 16:14:08 · 73 阅读 · 0 评论