javascript
Jqy_111
这个作者很懒,什么都没留下…
展开
-
js防抖与节流
用户点击某个选项进行资源请求时有可能会手抖连点几下,此时就会进行多次请求加重服务器负担,防抖和节流就是对用户请求频率做限制,使其在一定时间内只能执行一次(前端优化)。在很多方面都需要用到,比如监听滚动,修改dom时等…防抖 在事件被触发n秒后执行回调,若n秒内再次触发事件则重新计时。// 防抖function debounce(fn, wait) { var timeout = null; return function() {原创 2021-09-22 19:11:42 · 173 阅读 · 0 评论 -
js运行机制详解(Event Loop)
1、基础知识js作为浏览器脚本语言,它的主要用途是验证表单操作DOM,这也就决定js必须是单线程(避免几个线程同时操作同一个DOM);单线程就意味着,所有任务需要排队,前一个任务结束才能执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。为了利用多核CPU的计算能力,H5的Web Worker实现的“多线程”实际上指的是“多子线程”,完全受控于主线程,且不允许操作DOM;js引擎存在monitoring process进程,会持续不断的检查主线程执行栈是否为空,一旦为空,就会去Eve原创 2020-07-24 20:16:42 · 239 阅读 · 0 评论 -
js中工厂函数、构造函数、原型及原型链详解
。。。原创 2020-07-23 12:05:02 · 1261 阅读 · 0 评论 -
使用let/const的定义的变量,不会绑定到window对象中,不能使用window.xx的形式使用
在总结 apply()与call()时发现一个问题:let 定义的变量使用 window.xx 的形式使用时打印 undefined ,经过尝试后在此进行小结。先说结论:使用let、const、import、class的定义的变量,不会绑定到window对象中,不能使用window.xx的形式使用。使用var、function定义变量会绑定到window对象上。let num = 1console.log(this.num)//undefinedconsole.log(this)//Window 里原创 2020-07-12 11:41:52 · 1969 阅读 · 0 评论 -
js中的arguments对象
摘取于MDN Arguments 对象。arguments 是一个对应于传递给函数的参数的类数组对象。 “类数组”表示 arguments 具有length属性和从零开始索引的属性,但是没有Array诸如forEach()和的内置方法map()。function func1(a, b, c) { console.log(arguments[0]); // expected output: 1 console.log(arguments[1]); // expected output:原创 2020-07-11 16:57:14 · 232 阅读 · 0 评论 -
Array.prototype.slice.call(arguments,1)
对 Array.prototype.slice.call(arguments,1) 的简要理解。首先对其进行简要拆分:Array.prototype 属性表示 Array 构造函数的原型,并允许您向所有Array对象添加新的属性和方法。slice(start,end) 是Array原型上的方法,可以对一个数组进行截取(从start开始,不包含end;如果只有 start 则截取从 start 到数组结束的所有元素。)并返回一个新的数组(浅拷贝)。call() 简单理解为可以改变对象的this指向原创 2020-07-11 15:44:36 · 1521 阅读 · 0 评论 -
js中Number()与new Number()
js中的数据类型包括基础数据类型(number、string、boolean、null、undefined)和复合(引用)数据类型(Object—>包括Array、function、Data等)其中基础数据类型的 boolean、number、string又称为包装类型。当 Number() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 Number 对象。如果不用 new 运算符,把 Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转原创 2020-07-08 07:09:37 · 5105 阅读 · 1 评论 -
js中判断某个数据的类型
js中的数据类型:1)、基本数据类型<1>数值 number<2>字符串 string<3>布尔值 boolean<4>空类型 null(空)<5>未定义类型 undefined 2)、复合数据类型(引用数据类型:引用的是地址)Object—>包括数组(Array)、函数(function)、日期(Data)等1、使用typeof能判断出6种,分别是number、string、boolean、undefined、objec原创 2020-07-06 18:49:08 · 354 阅读 · 0 评论 -
js深浅拷贝与内存机制
参考与:js中的栈、堆、队列、内存空间1、深浅拷贝将一个变量的值赋值给另一个变量,相当于在栈内存中创建了一个新的内存空间,然后从栈中复制值,存储到这个新空间中。对于基本类型,栈中存储的就是它自身的值,所以新内存空间存储的也是一个值。直接改变新变量的值,不会影响到旧变量的值,因为他们值存储的内存空间不同。// 基本类型复制变量let a = 10let b = ab = 20console.log(a,b)//10 20而对于引用类型来说,同样是复制栈中存储的值。但是栈存储的只是其引用地址,原创 2020-06-27 16:20:29 · 288 阅读 · 0 评论 -
js中的栈、堆、队列详解;执行栈、执行上下文理解
参考与:js中的栈、堆、队列、内存空间栈(stack) 、堆(heap)、 队列(queue)是js的三种数据结构。一、栈栈的特点:后进先出,数据存储时只能从顶部逐个存入,取出时也需从顶部逐个取出。js中数组模拟栈:let arr = [1, 2, 3, 4, 5];let a = arr.push(6); // 存入数据(进栈) arr -> [1, 2, 3, 4, 5, 6]let b = arr.pop(); // 取出数据(出栈) arr -> [1, 2, 3, 4,原创 2020-06-27 11:58:28 · 779 阅读 · 0 评论 -
console详解,一些不常用的小知识
Console 对象提供的一些有趣的方法:详见 菜鸟教程 HTML DOM Console<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>console不常见用法</title> </head> <body> <script> /* console.log支持的格式标志有: %s原创 2020-06-26 22:55:10 · 321 阅读 · 0 评论 -
原生js获取设置元素样式及属性值小结
一、元素样式1、原生js获取元素样式以下使用dom代表元素节点。1、dom.style.xx 如要获取一个元素的color,可以使用 元素.style.color 。需要注意的是这种方式只能获取元素的行内样式值,无法获取到定义在<style></style>标签和通过<link href="xx.css">加载进来的样式。语法如下:let el= document.getElementById("test");el.style.color;2、getCo原创 2020-06-15 10:40:27 · 1988 阅读 · 0 评论 -
使用cookie和session实现登录(简单原理解析)
cookie:浏览器在客户端电脑硬盘中开辟的一块空间,主要用来存储服务端数据(比如sessionId)。cookie中的数据是以域名的形式进行区分的。cookie中的数据是有过期时间的超过时间会被浏览器自动删除。cookie中的数据可以随着请求被发送到服务器端。客户端第一次向服务器端发送请求时是没有cookie的,请求后服务器端会在cookie中存入一些数据。下次在访问相同的服务器就会带上cookie中的数据。session:实际上是一个对象,存储在服务器端的内存中,在session对象中也可以原创 2020-06-13 16:01:47 · 5190 阅读 · 0 评论 -
promise相关知识及使用
15、promisePromise出现的目的是解决nodeJS异步编程中回调地狱的问题。见编辑器:data\基础\PromisePromise()本身是同步的,但是它里面往往放的是异步任务resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject作用是,...原创 2020-06-05 16:01:28 · 149 阅读 · 0 评论 -
前端跨域问题总结整理
前端跨域问题总结整理一些常用的跨域解决方案①JSONP②CORS③document.domain + iframe跨域④跨文档通信 API:window.postMessage()77nginx反向代理接口跨域Nodejs中间件代理跨域webpack 代理,主要用于开发阶段WebSocket协议跨域功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的导出与原创 2020-06-05 08:21:31 · 223 阅读 · 0 评论 -
exports与module.exports的区分联系及用法,commonJS与ES6的模块化导入导出
exports与module.exports的区别联系及用法ES6和commonjs的导入和导出:ES6:commonjs:由下面两段代码片段及其输出值的对比:console.log(exports == module.exports)//trueconsole.log(exports)//{}console.log(module.exports)//{}exports = 1;//直...原创 2020-02-06 23:29:05 · 456 阅读 · 0 评论 -
js中for(const i in/of arr/obj)和vue中v-for指令的区别
js中for(const i in/of arr/obj)和vue中v-for指令的区别在js中在vue中v-for指令在js中 var obj = { q:'qqq', w:'www', e:'eee' } var arr1 = [ {r:'rrr'}, {t:'ttt'}, {y:'yyy'} ] var arr2 = ['uuu','iii','ooo']...原创 2020-02-03 11:27:49 · 2335 阅读 · 0 评论 -
javascript中this的指向问题(包括普通函数和箭头函数)
javascript中this的指向问题一. 全局作用域或者普通函数中 this 指向全局对象 window。①全局作用域②普通函数③自执行函数this指向window④定时器(setTimeout setInterval)环境this指向window⑤在普通对象里面this指向window二. 在调用方法时谁调用的this就指向谁①对象中方法的调用三.在构造函数或者构造函数原型对象中 this ...原创 2020-01-29 12:19:04 · 407 阅读 · 0 评论