javaScript
文章平均质量分 64
厉害的明大神
这个作者很懒,什么都没留下…
展开
-
ECMAScript 2017(ES8)Features
ECMAScript 2017(ES8)FeaturesECMAScript 2017 或 ES8 与 2017 年六月底由 TC39 正式发布,可以在这里浏览完整的版本;而 ES8 中代表性的特征包括了字符串填充、对象值遍历、对象的属性描述符获取、 函数参数列表与调用中的尾部逗号、异步函数、共享内存与原子操作等。字符串填充ES8 中添加了内置的字符串填充函数,分别为 padStart 与 padEnd,该函数能够通过填充字符串的首部或者尾部来保证字符串达到固定的长度;开发者可以指定填充的字符串或者使转载 2021-11-22 09:16:10 · 119 阅读 · 0 评论 -
JavaScript高级手记 (ajax的基础知识)
ajax的基础知识创建ajax实例的步骤// 1、创建AJAX实例 let xhr = new XMLHttpRequest(); // 2、打开URL(发送请求前的一些处理) xhr.open('get', 'http://www.baidu.com', true); // 3、箭筒AJAX状态信息 xhr.onreadystatechange = function(){ // xhr.readyState AJAX的状态 0~4 // xhr.status原创 2020-11-06 16:37:33 · 81 阅读 · 0 评论 -
JavaScript高级手记(原生拖拽效果)
JavaScript高级手记(原生拖拽效果)HTML代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style>原创 2020-11-06 11:38:23 · 81 阅读 · 0 评论 -
JavaScript高级手记(事件对象和默认行为)
JavaScript高级手记(事件对象和默认行为)/* * 事件对象:存储当前事件操作及触发的相关信息的(浏览器本身记录的,记录的是当前这次操作的信息,和在哪个函数中无关) 给当前元素的某个事件行为绑定方法,当事件行为触发,不仅会把绑定的方法执行,而且还会给方法默认传递一个实参,这个实参就是事件对象 * 鼠标事件对象 MouseEvent + clientX/clientY 鼠标触发点距离当前窗口的x/y轴坐标(只对当前屏,卷去的部分不计算在内) + pageX/原创 2020-11-05 14:42:23 · 82 阅读 · 0 评论 -
JavaScript高级(事件和事件绑定)
JavaScript高级(手机之事件和事件绑定)// 事件和事件绑定/* * 什么是事件? 事件是浏览器赋予元素的默认行为,也可以理解为事件时元素天生自带的,不论是否给其绑定方法,当某些行为触发的时候,相关的事件都会被执行触发 * 浏览器赋予元素的事件行为 - 鼠标事件 + click 点击/单击事件(PC) + dbclick 双击事件 + contextmenu 鼠标右键点击事件 + mousedown 鼠标按下原创 2020-11-05 11:40:12 · 95 阅读 · 0 评论 -
JavaScript高级手记(浏览器底层渲染机制和性能优化)
JavaScript高级手记(浏览器底层渲染机制和性能优化)/* * 客户端从服务器获取到需要渲染的页面的源代码后 【开辟一个GUI渲染线程,自上而下解析代码,最后绘制出对应的页面】 * 自上而下解析代码是同步的,但是某些操作是异步的 请求加载属于资源的获取 渲染解析属于代码执行 * 1、关于CSS资源的加载 * + 遇到的是<style> 内嵌样式 * => 同步:交给GUI渲染线程去解析 * +原创 2020-11-03 16:50:35 · 117 阅读 · 0 评论 -
JavaScript高级手记(发布订阅设计模式)
JavaScript高级手记(发布订阅设计模式)基于单例设计模式构建发布订阅(对象)/* * 设计模式:是一种思想,用来有效管理代码的思想 + 单例设计模式:对象 + 工厂设计模式:面向对象创建实例 + Promise设计模式:异步管理 + 发布订阅设计模式 + ... 发布订阅: 来源于 DOM2级事件池 DOM2级事件池机制:可以同时给同一事件类型行为绑定多个方法,当事件触发,绑定的方法依次被执行*//* fun原创 2020-11-02 13:56:02 · 58 阅读 · 0 评论 -
JavaScript高级手记(简单实现Promis)
JavaScript高级手记(简单实现Promis)// 实现Promisefunction _Promise(fn){ // 要求接收的fn必须是一个函数,否则报错 if(typeof fn !== 'function') { throw new TypeError('_Promise resolver undefined is not a function') } // 每个实例应该有这两个属性:state,result this.state = 'pending'; /原创 2020-10-30 17:38:07 · 113 阅读 · 0 评论 -
JavaScript高级手记 ( Promise详解
JavaScript高级手记 ( Promise详解/* * 创建Promise实例的时候得传一个函数 executor,并且这个函数接收两个参数 + resolve函数:将实例的状态从 pending 修改为 fulfilled/resolved,同时将实例的值改为执行这个函数时传递的实参 + reject函数:将实例的状态从 pending 修改为 rejected,同时将实例的值改为执行这个函数时传递的实参 每一个Promise实例都有两个重要的属性:原创 2020-10-29 16:53:14 · 90 阅读 · 0 评论 -
JavaScript高级手记(同步,异步)
JavaScript高级手记(同步,异步)1、JS中的同步异步编程 * JS中的同步异步编程 * 【进程、线程】 + 进程:代表的是一个程序(浏览器新开一个页面就是一个进程) + 线程:用来处理进程中的具体事物的,如果一个程序中需要同时做好多事情,就需要开辟好多线程 + 一个线程同时只能做一件事 * 浏览器是多线程的 + GUI渲染线程 + HTTP网络线程 + JS代码渲染线程 + ... * JS是原创 2020-10-28 17:03:09 · 116 阅读 · 0 评论 -
JavaScript高级手记(对象/数组的深浅拷贝)
JavaScript高级手记(对象/数组的深浅拷贝)// 对象(数组)的深克隆和浅克隆 var obj = { a: 100, b: [10,20,30], c: { x:10 }, d: /^\d+s/, e: null, f: undefined, g: function(){}, h: new Date(), i: Symbol('A'),};let arr = [10, [100,200], {x: 10, y: 20}]; // 浅克隆:原创 2020-10-27 16:35:07 · 77 阅读 · 0 评论 -
JavaScript高级手记(四种数据类型检测方法)
JavaScript高级手记(四种数据类型检测方法) * 数据类型检测 + typeof 检测数据类型的运算符 + 返回结果是一个字符串,字符串中包含了对应的数据类型 + "number/string/boolean/symbol/bigint/object/function" + 多个typeof检测,结果都是字符串 typeof typeof xxx => 'string' 【有BUG】 + type原创 2020-10-27 16:32:33 · 196 阅读 · 2 评论 -
JavaScript高级手记(原型重定向,new的实现)
JavaScript高级手记(原型重定向,new的实现)1、原型重定向/* * 原型重定向: 为什么要重定向: 为了方便批量给原型上扩充属性和方法 带来的问题: 1、新定向的原型对象上,没有 constructor 属性,结构不完整 2、浏览器默认生成的原型对象会因为缺少被引用而被销毁释放掉,可能导致在重定向之前给原型上添加的属性和方法丢失 !注意:内置类的原型不允许重定向*/function Fn(){ thi原创 2020-10-26 15:45:40 · 95 阅读 · 0 评论 -
JavaScript高级手记(函数的三种角色,this的五种情况)
JavaScript高级手记(函数的三种角色,this的五种情况)函数的三种角色/* * 函数的三种角色 + 普通函数:闭包作用域 + 构造函数:可以通过 new 执行创建其实例 + 普通对象:有键值对(也有原型链__proto__,指向Function.prototype这个匿名空函数) 这三种角色之间没有必然联系 所有的函数都是内置类Function的实例,所以一般函数的原型的constructor都是Function,即 fun.prototype.c原创 2020-10-23 16:24:56 · 90 阅读 · 0 评论 -
JavaScript高级手记(面向对象、原型、原型链)
JavaScript高级手记(面向对象、原型、原型链)----------面向对象编程-------------- * OOP (Object Oriented Programming): 面向对象编程 + java + javascript + c# + python + ... * POP (Procedure Oriented Programming): 面向过程编程 + c + ... ========原创 2020-10-21 16:47:45 · 75 阅读 · 0 评论 -
JavaScript高级手记(闭包高级应用)
学习JavaScript高级第八天(闭包高级应用)1、闭包应用值惰性函数和柯理化函数 JS高阶编程函数:惰性函数 + 懒 + 能只执行一次的绝不会执第二次// 这样写,每调用一次都要处理兼容的问题:这完全没有必要,第一次执行知道了兼容情况,后期再调用(浏览器也没余刷新、也没有换浏览器)兼容检验是没有必要的 function getCss(ele, attr){ if(window.getComputedStyle) { return window.getComp原创 2020-10-20 16:28:41 · 195 阅读 · 0 评论 -
JavaScript高级手记(数据类型转换、变量提升)
学习JavaScript 高级第三天(数据类型转换、变量提升)-------数据类型转换的4大核心标准-------- * 把其他数据类型转为 Number 类型 1、需要特定转化为 Number 的 + Number(val) + parseInt/parseFloat(val) 2、隐式转换(浏览器内部默认要先转为 Number 再进行计算的) + isNaN(val) + 数学运算(特殊情况:+在出现字符串的情原创 2020-10-20 09:32:36 · 98 阅读 · 0 评论