JavaScript
文章平均质量分 80
JavaScript
扶苏1002
一个热衷于技术的前端博主
展开
-
JavaScript中三个高阶运算符讲解??、??=、?.并解决Vue项目中babel编译不识别的问题
和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面的值。允许开发人员读取深度嵌套在对象链中的属性值,而不必验证每个引用。当引用为空时,表达式停止计算并返回。虽然浏览器能够认识这些新的运算符,但是项目中使用必须@babel/plugins转化才能使用。的时候,才会将右侧变量的值赋值给左侧变量,其他所有值都不会进行赋值。时,才会返回右侧的值。原创 2024-04-19 11:33:20 · 529 阅读 · 0 评论 -
关于JS对函数的形参的修改会不会影响实参
有的时候我们需要再函数定义的时候,对形参进行修改,此时会不会影响实参的具体值,我们具体探讨一下原创 2024-03-18 11:06:43 · 464 阅读 · 0 评论 -
JS性能优化之重排和回流
这也是为什么在获取这些值时会引起重排(回流)、重绘的原因,因此,我们在修改样式的时候,最好避免使用上面列出的属性,他们都会刷新渲染队列。现在我们要把这朵从左边移到了右边,那我们要先确定好右边的具体位置,画好形状(回流),再画上它原有的颜色(重绘)对于复杂动画效果,由于会经常的引起回流重绘,因此,我们可以使用绝对定位,让它脱离文档流。该过程的第一步和第三步可能会引起回流,但是经过第一步之后,对DOM的所有修改都不会引起回流,因为它已经不在渲染树了。比起考虑如何减少回流重绘,我们更期望的是,根本不要回流重绘。原创 2024-02-06 12:07:25 · 768 阅读 · 0 评论 -
JS try catch用法:异常处理
结构,也就是上下文环境已经改变,所以无法捕获异步任务里的错误。为了捕获到计划的函数中的异常,那么。块中的语句首先被执行。如果运行中发生了错误,控制就会转移到位于。能工作,代码必须是可执行的。换句话说,它必须是有效的。包裹了计划要执行的函数,该函数有延迟,这时。可以让异步代码同步执行,所以可以进行异常捕获。块的语句被跳过不执行。块中的语句执行完毕,或者没有发生任何错误。也不会捕获微任务的异常,道理同。内部的错误不会冒泡出来,而是被。块中的语句执行完毕,最后将执行。块中语句,其中括号中的。原创 2024-02-05 14:52:04 · 2509 阅读 · 0 评论 -
Object.definePropety() 方法详解
MDN对该方法的定义:Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。obj:要定义属性的对象。prop:要定义或修改的属性的名称或 Symbol。descriptor:要定义或修改的属性描述符。原创 2024-02-03 14:28:03 · 815 阅读 · 0 评论 -
JS事件最全详解
方法用于向指定元素添加事件处理程序(事件句柄handler参数1:事件名称必须。字符串,指定事件名。注意: 不要使用 “on” 前缀。例如,使用click,而不是使用onclick。参数2function必须。指定要事件触发时执行的函数。注意:事件对象会作为第一个参数传入函数。参数3useCapture可选。布尔值,指定事件是否在捕获或冒泡阶段执行。true- 事件处理程序(事件句柄)在捕获阶段执行false默认。事件处理程序(事件句柄)在冒泡阶段执行事件对象的类型取决于特定的事件。例如,click。原创 2024-02-01 17:49:56 · 4083 阅读 · 2 评论 -
JS的组成
ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。JavaScript ( JS ) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。、DOM、BOM组成。原创 2024-01-30 09:35:29 · 326 阅读 · 1 评论 -
JS的书写位置
代码,不需要依赖任何行为,打开页面就会执行。直接把代码书写到标签身上。原创 2024-01-30 09:39:16 · 339 阅读 · 1 评论 -
JS的变量
所谓变量,通俗的理解就是用于存放数据的容器。我们通过 变量名 获取数据,甚至数据可以修改。本质:变量是程序在内存中申请的一块用来存放数据的空间。原创 2024-01-30 09:49:40 · 349 阅读 · 1 评论 -
var、let和const声明变量的区别
var声明是全局作用域或函数作用域,而let和const是块作用域。var变量可以重新赋值和重新声明;let变量可以重新赋值但不能重新声明;const变量既不能重新赋值也不能重新声明。它们都被提升到其作用域的顶端但是,虽然使用变量undefined初始化了var变量,但未初始化let和const变量的值因此let const 如果先使用后声明会报错。var和let声明可以不初始化,const在声明期间必须初始化。原创 2024-01-30 10:08:53 · 1597 阅读 · 1 评论 -
JS 数据类型
具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转 换成 Infinity(正无穷)。因为每一个 Symbol 值都是不相等的,所以 Symbol 值可以用作唯一标识,用于对象的属性名,就能防止属性名的同名冲突。注意, Symbol() 函数的参数只有描述作用,即使两个 Symbol() 函数的参数相同 ,它们的返回值也是不相等的。BigInt 是 ES 2020 新增的基本类型,能够表示任意长度的整数,突破了 Number 类型的大小限制问题。原创 2024-01-30 11:03:02 · 2319 阅读 · 1 评论 -
Number、parseInt、parseFloat转整数的区别
函数类似,parseFloat() 也是从第一个字符(位置0)开始解析每一个字符。字符串中第一个小数点是有效的,而第二个小数点就是无效的了,它后面的字符串将被忽略。如果字符串中包含的是一个可解析为正数的数(没有小数点,或者小数点后都是零),第二个参数可以设置基数,按照这个基数的进制来转换。所解析的字符串中第一个非数字字符是有效的,而。,因此它没有第二个参数指定基数的用法。遇到第一个非数字字符会停止解析。原创 2024-01-30 11:24:24 · 1036 阅读 · 1 评论 -
JS判断数据类型的五种方法
提供了一系列工具方法,用来判断数据类型,以弥补JavaScript原生的typeof运算符的不足。以下方法对参数进行判断,返回一个布尔值。不可以用typeof检测。都会返回小写的object。的实例,返回一个布尔值,由构造类型判断出数据类型。检测数据类型,分别返回对应的。数据类型的小写字符串。原创 2024-01-30 11:37:36 · 410 阅读 · 1 评论 -
Object.prototype.toString()方法判断数据类型的原理
的形式来调用,传递要检查的对象作为第一个参数。帮助执行一次函数,并且将函数内部的。方法都被覆盖了,所以他们无法使用。方法,可以直接判断出来数据类型。这几种构造函数生成的对象,方法,并且将函数内部的。的作用,帮助执行一次。原创 2024-01-30 11:51:32 · 976 阅读 · 1 评论 -
JS的运算符详解
js中,我们在写一个变量自加1时,可以写为num=num+1,但是我们习惯性简写,num++或者是++num,在不配合进行其他运算时,这两者是没有任何区别的,都是自加1,但是当它们用于赋值时结果是不一样的。数学运算符就是常见的加(+)、减(-)、乘(*)、除(/)、等于(=)、求幂(**)、自增(++)、自减(–)、加等于(+=)、减等于(-=)等。注意: 全等不光比较两者值是否相同,还比较变量类型是否相同;与数学运算中的比较相同:大于(>)、小于(=)、小于等于(原创 2024-01-30 11:58:13 · 363 阅读 · 1 评论 -
JS的条件分支语句
从第一个条件开始,哪一个条件满足了,就执行哪一个条件后面的 {} 里面的代码,所有的条件都不满时,就执行 else 后面 {} 里面的代码。第一个条件开始,哪一个条件满足了,就执行哪一个条件后面的 {} 里面的代码,前面的条件满足了,后面的条件就全部不管了,直接跳过。条件满足执行 if 后面的 {} 里面的代码,条件不满足就执行 else 后面的 {} 里面的代码。只要条件满足就执行 {} 里面的代码,只要条件不满足就不执行 {} 里面的代码。要是不写default,那么所有条件都不满足时就没有代码执行。原创 2024-01-30 12:05:16 · 363 阅读 · 1 评论 -
JS循环语句
重复的执行一段的代码,避免死循环,提高效率(时间复杂度(主要关注) 空间复杂度(不关注))**循环包含三大语句:**while语句、do while语句、for语句。原创 2024-01-30 14:48:59 · 622 阅读 · 1 评论 -
JS中break、continue、return跳出循环的用法和区别
【代码】JS中break、continue、return跳出循环的用法和区别。原创 2024-01-30 14:39:57 · 1411 阅读 · 2 评论 -
JS中return的用法总结
return 语句会终止函数的执行,并返回函数的执行结果。原创 2024-01-30 15:32:37 · 1468 阅读 · 1 评论 -
JavaScript程序的时间复杂度
所谓的定性就是大概进行描述一下运行时间的趋势,不会去具体到运行需要多少秒;时间复杂度通常用大O来表示,例如O(1)、O(n)、O(logn)等。这段代码的时间复杂度是O(n^2),如果是相乘的话会将两个时间复杂度进行相乘。因为在这个代码中,这两行代码永远只执行一次,所以时间复杂度是。在上面的代码中,运行时间取决与。原创 2024-01-30 14:44:50 · 220 阅读 · 1 评论 -
JS函数详解
函数就是将实现特定功能的代码封装起来,当我们需要实现特定功能时,直接调用函数实现即可,不需要每次都写一堆代码,实现代码的复用。1、实现功能的封装,提高代码复用率2、用于构建对象的模板(构造函数)函数实际上是对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法,由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。如下代码中,要得到a变量,但是在当前的作用域中没有定义a(可对比一下b)。当前作用域没有定义的变量,称为为 自由变量。原创 2024-01-30 15:21:29 · 1125 阅读 · 1 评论 -
JS的作用域和作用域链
如下代码中,console.log(a)要得到a变量,但是在当前的作用域中没有定义a(可对比一下b)。当前作用域没有定义的变量,称为为 自由变量。console.log(a) // 这里的a 就是一个自由变量 // 100fn()原创 2024-01-31 09:19:19 · 163 阅读 · 0 评论 -
JS递归函数详解
简单来说,递归函数就是一个函数直接或间接地调用自身。原创 2024-01-31 09:22:08 · 2202 阅读 · 0 评论 -
JS构造函数详解
所谓构造函数,就是提供一个生成对象的模板,并描述对象的基本结构的函数。原创 2024-01-31 09:21:46 · 1440 阅读 · 0 评论 -
JS的this指向问题
//window全局对象原创 2024-01-31 09:21:30 · 739 阅读 · 0 评论 -
JS的原型对象和原型链
1、自从用。原创 2024-01-31 09:21:17 · 989 阅读 · 0 评论 -
JS垃回收机制
没有被引用的对象,就是垃圾对象。原创 2024-01-31 09:20:54 · 390 阅读 · 0 评论 -
JS数组的方法总结
可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。如果不想改变数组中的所有元素,而只是想改变其中一部分,那么可以使用可选的起始位置参数与结束位置参数(不包括结束位置的那个元素)可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。该回调函数可接受三个参数:数组的某个元素,该元素对应的索引位置,以及该数组本身。原创 2024-01-31 09:20:31 · 592 阅读 · 0 评论 -
JS对象常用方法总结
/ 使用构造函数console.log("汪汪");var dog3 = new Dog("大黄", 2);添加数据属性;// 1.添加一个数据属性writable: true, // 是否允许修改enumerable: true, // 是否允许枚举configurable: true, // 是否允许删除});// 101// 2.修改数据属性});//添加访问器属性},},});注意: 1.第一个参数必须为对象。原创 2024-01-31 09:20:15 · 1843 阅读 · 0 评论 -
JS字符串方法总结
功能:检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果找到,返回与。功能: 检查字符串是否以指定的字符串或字符结束, 是返回true,反之返回false。功能:用于连接两个或多个字符串,此方法不改变现有的字符串,返回拼接后的新的字符串。功能:返回指定文本在字符串中最后一次出现的索引,如果未找到,则返回。功能:取字符串的某个部分,返回一个新的字符串。返回一个新的字符串,包含从。功能:检查字符串是否包含指定的字符串或字符, 存在返回。功能:检查字符串是否以指定的字符串或字符开始, 是返回。原创 2024-01-31 10:03:38 · 1055 阅读 · 0 评论 -
JS数字方法总结
规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。toPrecision(precision):将数字转换为指定有效位数的字符串。toFixed(digits):将数字转换为指定小数位数的字符串。toString(radix):将数字转换为指定进制的字符串。Math.random():返回一个介于0和1之间的随机数。values):返回一组数中的最大值。Math.pow(x, y):返回 x 的 y 次幂。Math.round(x):对一个数进行四舍五入。原创 2024-01-31 10:23:35 · 978 阅读 · 0 评论 -
JS的日期函数Date
是一个专门用来创建时间对象的,是一个复杂数据类型,具有读写属性。原创 2024-01-31 10:33:27 · 2398 阅读 · 0 评论 -
JS的Math 对象
它属于一个工具类不用创建对象,它里边封装了数学运算相关的属性和方法。可以对一个数向上取整,小数位只要有值就自动进 1。可以对一个数进行向下取整,小数部分会被舍掉。和其他的对象不同,它不是一个构造函数。可以对一个数进行四舍五入取整。可以用来加算一个数的绝对值。可以获取多个数种的最大值。可以获取多个数中的最小值。用于对一个数进行开方运算。返回 x 的 y 次幂。原创 2024-01-31 10:22:42 · 337 阅读 · 0 评论 -
JS的BOM 概念以及操作
screen对象包含了显示设备的信息(和设备屏幕的硬件像素值有关系,例如:我的设备屏幕的硬件像素值是2160px,分辨率是150%,那么window.screen.width = 2160px/1.5 = 1440px,这个值不会随着浏览器的放大缩小而改变)。在浏览器中,既是javascript访问浏览器窗口的一个对象,又是ECMAScript规定的Global对象,这就意味着在网页中定义的任意变量、函数、对象都是以window作为Global对象。返回一个类似数组的对象,成员为页面内的所有框架,包括。原创 2024-02-01 09:04:07 · 752 阅读 · 0 评论 -
JS的DOM 概念以及操作
文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。原创 2024-02-01 09:07:40 · 1035 阅读 · 0 评论 -
JavaScript任务执行
JavaScript事件循环是一种机制,用于处理异步事件和回调函数。它是JavaScript运行时环境的一部分,负责管理事件队列和调用栈。原创 2024-01-31 11:43:31 · 949 阅读 · 0 评论 -
JavaScript栈和队列
栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。**栈的特点是:**先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。栈的受限性体现在只允许在栈顶插入和删除,因此出栈和入栈都是在栈顶。原创 2024-01-31 11:40:51 · 1009 阅读 · 2 评论 -
JS内存空间
JavaScript的内存生命周期:为了便于理解,我们使用一个简单的例子来解释这个周期。二、栈与堆首先,我们来看一下代码:下面的几道是关于内存空间的面试题,虽然不是特别的难,但比较扣细节你稍不注意就错了,我的建议还是老老实实画个内存图再自信的给出正确答案吧。第一题:第二题:第三题:第四题:第五题:原创 2024-01-31 11:36:46 · 1000 阅读 · 0 评论