
js基础
雪落凡尘zz
这个作者很懒,什么都没留下…
展开
-
原型链
https://www.jianshu.com/p/dee9f8b14771原创 2020-08-17 21:36:33 · 92 阅读 · 0 评论 -
promise 并发控制
https://blog.youkuaiyun.com/tonghonglei/article/details/88054116原创 2020-08-13 21:28:40 · 325 阅读 · 0 评论 -
let const var
全局作用域:任何地方都能访问到的对象拥有全局作用域。(1)函数外面定义的变量(2)未定义直接赋值的变量自动声明函数作用域:只可函数内部访问块级作用域:{},包括for,if为什么需要?(1)内层变量会覆盖外层变量(变量提升)var tmp = new Date();function f() { console.log(tmp); if (false) { var tmp = 'hello world'; }}f(); // undefined(2)循环变量泄漏原创 2020-08-14 21:06:27 · 106 阅读 · 0 评论 -
await async相关
每隔几秒输出值function sleep(interval) { return new Promise(resolve => { setTimeout(resolve, interval); }) } // 用法 async function one2FiveInAsync() { for(let i = 1; i <= 5; i++) { console.log(i); await sleep(1000*i);原创 2020-08-11 23:50:59 · 112 阅读 · 0 评论 -
js内存泄漏
1.全局变量function foo(arg) { bar = "this is a hidden global variable"; //window.bar} function foo() { this.variable = "potential accidental global"; } // Foo 调用自己,this 指向了全局对象(window) // 而不是 undefined foo(); 2.闭包function(){ let a=1;原创 2020-08-11 21:44:37 · 116 阅读 · 0 评论 -
js操作dom方法
DOM节点获取 var div1 = document.getElementById("box1"); //方式一:通过id获取单个标签 var arr1 = document.getElementsByTagName("div1"); //方式二:通过 标签名 获得 标签数组,所以有s var arr2 = document.getElementsByClassName("hehe"); //方式三:通过 类名 获得 标签数组,所以有s parentNo原创 2020-08-08 15:57:00 · 289 阅读 · 0 评论 -
函数节流和函数防抖及闭包
函数节流:是确保函数特定的时间内至多执行一次。实现:const _.throttle = (func, wait) => { let timer; return () => { if (timer) { return; } timer = setTimeout(() => { func(); timer = null; }, wait); };};函数防抖:就是指触发事件后在 n 秒内函数只能执行一次原创 2020-07-28 23:11:19 · 408 阅读 · 0 评论 -
js杂项(实现new,webworker,defer,async)
怎么实现new?Web Worker 的作用?为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻塞或拖慢。...原创 2020-07-28 23:03:43 · 213 阅读 · 0 评论 -
js继承
1.原型链继承function Person(name){ this.name=name; this.age=10;}function Child(){ }Child.prototype=new Person(); //主要const p=new Child();const s=new Person();s.height=20; // p.age=20 p.height=undefined原创 2020-07-27 16:06:42 · 82 阅读 · 0 评论 -
js获取dom的方法
获取dom的方法通过ID获取(getElementById)通过name属性(getElementsByName)通过标签名(getElementsByTagName)通过类名(getElementsByClassName)获取html的方法(document.documentElement)获取body的方法(document.body)通过选择器获取一个元素(querySelector)通过选择器获取一组元素(querySelectorAll)document.querySelecto原创 2020-07-26 21:47:30 · 97 阅读 · 0 评论 -
js浮点数
0.3-0.2===0.1?不等于其中,S表示符号,1表示负数,0表示正数;M表示尾数部分;E表示阶码。单精度32位精度:1位符号位+8位指数位+23位尾数部分双精度64位精度:1位符号位+11位指数位+52位尾数部分...原创 2020-07-26 21:15:26 · 123 阅读 · 0 评论 -
js中的事件详解
事件的3个阶段:事件捕获、目标阶段、事件冒泡事件冒泡和事件捕获事件捕获:从document开始触发,一级一级往下传递,依次触发,直到真正事件目标为止事件冒泡:从当前触发的事件目标一级一级往上传递,依次触发,直到document为止事件代理(事件委托):利用事件冒泡,只用一个事件处理程序,就可以管理某一类型的所有事件...原创 2020-07-19 20:36:26 · 170 阅读 · 0 评论 -
js中 this的指向
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(1)指向windowfunction a(){ var user = "1"; console.log(this) //window }a()//严格模式function a(){ 'use strict'; console.log(this) //undefined}a()// 定时器setTimeout(functi原创 2020-07-19 19:54:10 · 96 阅读 · 0 评论 -
js 实现深拷贝
js中 =号传递的都是对象/数组的引用function deepClone(obj){ let cloneObj = Array.isArray(obj) ? []:{}; if(obj && typeof obj ==="object"){ for(var key in obj){ if(obj.hasOwnProperty(key)){ if(obj[key] && typeof o原创 2020-07-19 18:03:10 · 119 阅读 · 0 评论 -
js bind call Apply
Function.prototype.myBind = function() { let self = this //保存一份对象 let context = [].shift.apply(arguments) //取参数首个元素,即新对象 let outArgs = [].slice.call(arguments) // 取剩余参数,即绑定方法传入参数,封成数组 return function() { let inArgs = [].slice.call(arguments) // 封.原创 2020-07-16 10:47:17 · 156 阅读 · 0 评论 -
js基本数据类型
js中基本数据类型string number boolean object null undefined symbol bight其中object包含Date、function、Arraynull:表示"没有对象",即该处不应该有值用法:(1) 作为函数的参数,表示该函数的参数不是对象。(2) 作为对象原型链的终点。undefined:“缺少值”,就是此处应该有一个值,但是还没有定义用法:(1)变量被声明了,但没有赋值时,就等于undefined。(2) 调用函数时,应该提供的参数没有原创 2020-07-14 21:38:37 · 306 阅读 · 0 评论