
JS
JavaScript相关内容
日晞
这个作者很懒,什么都没留下…
展开
-
export 和 export default 的区别
你能够在每一个模块中定义多个命名导出,但是只允许有一个默认导出。export default:默认导出。export:命名导出。转载 2023-08-29 16:38:48 · 143 阅读 · 0 评论 -
JS 的 this 指向问题
3.箭头函数:由于没有 this 指向,箭头函数内打印 this 会指向上一层的 this。5.事件绑定中的this。2. 普通函数作用域下。转载 2023-08-27 23:35:55 · 141 阅读 · 0 评论 -
JS 获取 HTML DOM 元素的方法
【代码】JS 获取 HTML DOM 元素的方法。原创 2023-08-27 23:14:30 · 671 阅读 · 0 评论 -
async...await 与 promise 的关系
async 里 return 相当于 promise 的 resolve(),所以promise 状态变成 fulfilled,这时就会跳到 .then() 里进行执行。转载 2023-08-27 23:03:34 · 138 阅读 · 0 评论 -
promise
由宏任务、微任务可得,微任务先执行(promise.then()), 他改变了promise 的状态,打印2,再到宏任务,setTimeOut,但是由于 promise 状态一经生成,不会改变状态,所以不打印。resolve() 和reject() 里的参数就是对于 then 和 catch 里的参数;Promise.resolve() 返回 fulfilled 状态的promise => then()Promise.reject() 返回 rejected 状态的promise => catch()原创 2023-08-26 20:14:06 · 1162 阅读 · 0 评论 -
类数组转数组
1.Array.from(类数组)2.拓展运算符:[... 类数组]原创 2023-08-26 15:18:22 · 119 阅读 · 0 评论 -
数组、对象和类数组遍历方式
every(),some(),entries(),fill(),filter(),find(),for..of,for 循环,forEach,includes(),indexof(),join(),map(),reduce(),sort(),reverse(),flat()最好是转换成数组进行遍历。比如arguments。原创 2023-08-26 14:16:04 · 187 阅读 · 0 评论 -
数组的方法,是否会改变原数组
改变原数组: fill(),pop(),push(),shift(),unshift(),reverse(),sort(),splice()转载 2023-08-26 13:43:59 · 110 阅读 · 0 评论 -
JavaScript == 和 ===的区别
如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。版权声明:本文为优快云博主「Sunny_lxm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。== 对于类型不同的数据,会进行转换,进行判断;=== 会严格的判断类型,值是否完全相等;如果两个值类型相同,进行 === 比较。转载 2023-08-26 13:10:58 · 114 阅读 · 0 评论 -
执行上下文与执行栈
【代码】执行上下文与执行栈。转载 2023-08-25 17:13:18 · 92 阅读 · 0 评论 -
作用域与作用域链
作用域:变量的可用范围。分为全局作用域和函数作用域,子集作用域可以访问父级作用域,父级不能访问子集作用域。转载 2023-08-25 15:36:39 · 124 阅读 · 0 评论 -
如何给 Person 对象的原型添加方法
【代码】如何给 Person 对象的原型添加方法。转载 2023-08-17 11:01:57 · 97 阅读 · 0 评论 -
箭头函数引申知识:arguments,伪数组转数组,super
1.arguments:是一个函数参数的类数组对象2.那么类数组对象怎么转真的数组呢?3.super:指的是当前对象的原型对象原创 2022-05-03 15:37:02 · 292 阅读 · 0 评论 -
try...finally
try { console.log(1); //调用接口失败 //调用接口成功} finally { console.log('不管你前面做了什么,这里都会运行');}原创 2022-01-15 00:14:15 · 119 阅读 · 0 评论 -
输入输出不常用语句
prompt('hello') // 接受用户输入语句confirm('您确定要进行操作吗?') // 用于提示框原创 2021-11-06 18:45:45 · 100 阅读 · 0 评论 -
script 标签 defer 和 async;script 和 CSS 放的位置
script 代码一般放在 body 下面,等HTML 渲染后再执行js;CSS 代码一般放在 body 上面,目的是直接展示有了样式后的界面,用户交互会更好。defer 必须要 html 执行完之后,再执行js。async 只要 js 下载完就执行。原创 2021-11-06 18:42:50 · 171 阅读 · 0 评论 -
js 代码可放的位置
1.script 标签内写js 代码2.script src 引入js 代码<script src="./test.js"></script>但是这里假如又同时在script 标签内写js 代码,会忽略掉这个里面的代码,只有src 引入的js 代码会起作用3.事件属性<button onclick="console.log(1)">按钮</button>点击按钮后打印14.url 内写js 代码<a hre.原创 2021-11-06 18:21:18 · 165 阅读 · 0 评论 -
js 语言
1.html 与js 这两种语言区别html 是标记语言,她的语言组成是标签,eg:<head></head>js:编程语言 因为他有数据保存 运算 逻辑判断 循环 而编程语言:机器语言(0 和1二进制) 汇编语言 高级语言2.编程语言分为编译语言与解释语言编译语言:C,C++ 他会把语言编译成.exe 文件(windows) 或.erp 文件(linux) 这样速度更快,但是需要考虑平台兼容性解释语言: js 主要依靠浏览器(宿主环境/ 解释器)或node...原创 2021-11-06 17:52:42 · 993 阅读 · 0 评论 -
嵌套数组去重
let arr = [[3,5,3],[3,5],[0,23],[9,29,1]];let newArr = [];function unique(arr) { for(var i=0;i<arr.length;i++) { if(Array.isArray(arr[i])) { unique(arr[i]) console.log(1) }else { if(newArr.index.原创 2021-10-12 14:55:35 · 197 阅读 · 0 评论 -
HTML5 与es6 新特性
arr.map() 和 arr.reduce()let 和 const 命令。for..of 循环。原创 2021-10-12 14:32:54 · 158 阅读 · 0 评论 -
数组相关 slice indexOf map filter reduce push返回什么
1.slice 不会改变原数组2.array.indexOf("ok") array 中有ok 的话,返回其下标;没有,返回-13.map() 是对数组的每个元素都遍历一次,同时返回一个新的数组,返回数组的长度和原始数组长度一致。4.filter() 是创建一个过滤后的新的数组5.find() 返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined6.reduce() 可以直观的返回数组里面指定的一个值或者对象7.let newList = ...原创 2021-10-09 13:44:06 · 143 阅读 · 0 评论 -
setTimeout 和setInterval 区别
setTimeout: 在自定义时间到了之后,运行一次setTimeout 代码setInterval: 在自定义时间到了之后,循环往复执行setInterval 代码原创 2021-10-09 13:18:04 · 100 阅读 · 0 评论 -
面向对象的三大特点?
封装,继承,多态原创 2021-10-09 12:34:16 · 97 阅读 · 0 评论 -
继承的特点是?继承有哪些?特点分别是?
特点:子对象可以访问父对象的属性和方法。继承方法:原型链继承:Student. prototype = new Person(...)父类属性方法,都会继承创建子类型实例的时候,不能传递参数,因为这个对象是一次性创建的(没办法定制化)构造函数继承:在子类型构造函数的内部调用父类型构造函数;使用 apply() 或 call() 方法将父对象的构造函数绑定在子对象上。转载 2021-09-29 19:16:40 · 165 阅读 · 0 评论 -
new一个实例经历的过程
var jack = new people(age, sex)这里new 一个实例: var jack = {} people.prototype = jack.__proto__ people.call(dod, age, sex);原创 2021-09-29 13:10:42 · 184 阅读 · 0 评论 -
事件循环
Javascript 是单线程的,所有任务都是同步的,即所有操作需要排队完成,这条队伍叫做主线程。事件循环分为浏览器事件缓存和 nodejs 事件缓存,主要是为了让 JavaScript 代码在运行过程不会阻塞的一种机制。async1() 是同步任务,等到 await async2() 时,是异步,它后面的语句则是 .then 执行的语句,所以打印async1 end 会放到微任务中。1.Promise的then,catch ,finally。任务进行顺序: 同步任务 --> 微任务 --> 宏任务。转载 2021-09-22 21:57:39 · 1244 阅读 · 0 评论 -
进程与线程
进程:一个程序实例线程:程序执行的最小单位线程依附进程线程之间数据共享,进程之间的数据互相隔离线程某个任务报错,阻止后面任务进行;进程中任意一线程出错,会导致进程崩溃。但是进程之间不会互相影响浏览器就是多进程,一个页面是一个渲染进程,所以当某一个页面崩溃时,不会影响其他页面。...原创 2021-09-20 13:04:26 · 83 阅读 · 0 评论 -
Ajax 特点
1.可以实现局部刷新2.异步发送请求,发出请求时还可以进行其他操作。原创 2021-09-20 12:55:45 · 233 阅读 · 0 评论 -
跨域定义、出现原因、解决办法
跨域:当页面的某个接口请求的地址与当前页面的地址中域名、端口、协议有时,即为跨域。出现原因:因为浏览器发起接口请求必须符合同源协议,即域名,端口和协议必须都一样,否则跨域,无法请求数据,目的是保证网站安全。原创 2021-09-20 12:46:09 · 709 阅读 · 0 评论 -
Map 和Weakmap 区别
1.键,值数据类型: Map:键,值可以是任意数据类型; Weakmap:只接受对象作为键名(null 除外)2.可以迭代吗Map:可以迭代 Weakmap:不可迭代3.插入是否按照顺序Map:键值对按照插入顺序排列(而obj 会按照键值大小从小到大排序) Weakmap:不按照顺序4.垃圾回收机制Map:不会 Weakmap:键名是...原创 2021-09-17 16:39:45 · 400 阅读 · 0 评论 -
js 垃圾回收机制的工作原理
调用栈中的垃圾回收机制 堆中垃圾回收机制原创 2021-09-17 16:28:09 · 292 阅读 · 0 评论 -
关于闭包及其应用场景
闭包是什么: 我的理解是 function fn1(){ return function fn2() {} } x = fn1() x()闭包为什么出现: 因为js 外部无法访问到函数内部的变量闭包怎么形成的:作用域链,当前作用域可以访问上级作用域中的变量;且全局变量只有页面关闭才销毁缺点: 易造成内存泄漏应用场景:柯里化,埋点计数器...原创 2021-09-17 16:10:51 · 194 阅读 · 0 评论 -
let,const,var 区别
1.var 关键字挂载在window 下 变量提升 声明的变量可重复声明和修改2.let,const 关键字创建提升,暂时性死区 不挂载在window 下 是js 的块级作用域 不允许重复声明注意:这里const 不能修改,let 可以修改...原创 2021-09-17 15:59:09 · 125 阅读 · 0 评论 -
箭头函数特点
【代码】箭头函数特点。原创 2021-09-17 15:50:27 · 133 阅读 · 0 评论 -
call、apply 和 bind 的使用
【代码】call、apply 和 bind 的使用。原创 2021-09-16 17:21:55 · 76 阅读 · 0 评论 -
变量提升相关面试题
【代码】变量提升相关面试题。原创 2021-09-16 15:50:03 · 313 阅读 · 0 评论 -
Js的数据类型有哪些
Boolean(true false) undefined null String (js 字符串不可更改) BigInt Number Symbol(唯一且不可更改,常用于Object的key) Object(数组,对象,日期,Math)原创 2021-09-16 12:12:21 · 114 阅读 · 0 评论 -
观察者模式
// 订阅者也就是被观察者 class Subject { constructor() { this.observers = []; } add(observer) { // 将观察者推入数组 this.observers.push(observer); } notify(...args) { this.observers.forEach(observer => ob.原创 2021-09-07 17:38:56 · 91 阅读 · 0 评论 -
pop(),push();shift(),unshift();
原创 2021-09-06 15:09:21 · 161 阅读 · 0 评论 -
数组去除重复数据(去重)方法
/ 这就是假如空数组里没有数组的数据时的判断。原理:遍历数组,看新的空数组有没有遍历的数,没有,就加入遍历的数;原创 2021-09-06 14:58:42 · 1111 阅读 · 0 评论