Javascript的知识点
文章平均质量分 60
Javascript中方法和属性的使用 以及一些编码小技巧 希望通过这些文章能够对正在学习前端的小伙伴有所帮助
李公子丶
学而时习之,不亦说乎!
展开
-
移动端的兼容问题(ios和安卓)
ios和安卓系统存在的兼容问题1.禁止图片点击放大部分安卓手机点击图片会放大,如需要禁止放大,只需要设置 css 属性img{ pointer-events: none;}这个会让 img 标签的点击事件失效,如果想要给图片添加点击事件就要给上面再写一层2.禁止 iOS 识别长串数字为电话<meta name="format-detection" content="telephone=no">3.禁止复制、选中文本// 设置CSS属性 .原创 2021-12-09 17:45:40 · 1769 阅读 · 0 评论 -
ES7中修饰器的作用
修饰器是一个函数,它可以给class类或属性上,加上一些其他的操作修饰器对类的行为的改变是在代码编译时发生的,而不是在运行时,这意味着,修饰器能够在编译阶段执行代码。也就是说,修饰器的本质就是编译时执行的函数。修饰器的第一个参数就所要修饰的目标对象。...原创 2021-12-08 18:16:49 · 553 阅读 · 0 评论 -
数组排序算法
冒泡排序(Bubble Sort) 数组中有n个数,比较每相邻的两个数,如果前者大于后者,就把两个数交换位置,第一轮就可以选出一个最大的数放在最后面;那么经过n-1(数组的 length-1)轮,就完成了所有数的排序。”// 冒泡排序,拿出数组的当前项和后一项对比,满足条件交换位置var arr = [6,7,4,3,5,1,2]for (let i = 0; i < arr.length - 1; i++) { for (let j = i + 1; j <...原创 2021-11-29 18:24:42 · 239 阅读 · 0 评论 -
数组扁平化的几种方式
var arr = ['1', [2,3],4,[5,6,7,[8,9]]]// 使用ES6新增的flat方法来实现console.log(arr.flat(Infinity));// 检测数组里面的元素是否包含数组 数组元素有数组就解构一层继续递归, 否则直接返回arrfunction flat (arr) { let flag = arr.some(item => Array.isArray(item)) return flag ? flat(...原创 2021-11-11 21:09:40 · 732 阅读 · 0 评论 -
从一个URL到页面渲染完成发生了什么?
DNS解析:将域名地址解析为IP地址 (查找规则如下) 浏览器DNS缓存 系统DNS缓存 路由器DNS缓存 网络运营商DNS缓存 递归搜索: (例如:limobai.ag.com) .com域名下查找DNS解析 .ag域名下查找DNS解析 limobai域名下查找DNS解析 出错了 通过TCP建立连接:TCP三次握手 第一次握手,由浏览器发起,告诉服务器我要发送请求了 第二次握手,由服务器发起,告诉浏览器我准备好接收了,你赶紧发送吧 第三次握手,原创 2021-11-03 15:37:24 · 99 阅读 · 0 评论 -
js作用域
js的作用域 作用域说明:一般理解指-个变量的作用范围全局作用域全局作用域在页面打开时被测建,页面关闭时被销毁 编写在script标签 中的变量和函数,作用域为全局,在页面的任意位置都可以访问到 在全局作用域中有全局对象window ,代表一个浏览器窗口,由浏览器创建,可以直接调用 全局作用域中声明的变量和函数会作为window对象的属性和方法保存函数作用域调用函数时,函数作用域被创建,函数执行完毕,函数作用域被销毁 每调用一次函数就会创建一个新的函数作用域,...原创 2021-10-26 18:22:18 · 120 阅读 · 0 评论 -
防抖(debounce)和节流(throttle)
防抖函数当持续触发事件,定时间内没有再触发事件事件处理函数才会执行一次,如果设定的时间到来之前,又触发了事件就重新开始延时。触发事件一段时间内没有触发事件执行肯定是定时器(在设定的时间内又-次触发了事件重新开始延时代表的就是重新开始定时器)(那么意味着上一次还没有结束的定时器要清除掉重新开始)<input type="text" name="" id="txt"><script> const input = document.querySelecto.原创 2021-10-26 15:26:44 · 149 阅读 · 0 评论 -
对象的深拷贝和浅拷贝
什么是深拷贝和浅拷贝浅拷贝是创建一个新对象, 这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。深拷贝是将一个对象从内存中完整的拷贝份出来, 从堆内存中开辟一 个新的区域存放新对象,且修改新对象不会影响原对象。针对引用类型来说赋值深拷贝浅拷贝的区别浅拷贝 赋值的区别当我们把一个对象赋值给一个新的变 量时,...原创 2021-10-25 23:40:02 · 1030 阅读 · 0 评论 -
ES6 模块化的介绍和使用
S6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS 和 AMD 模块,都只能在运行时确定这些东西。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。// ES6模块import { stat, exists, readFile } from 'fs';上面代码的实质是从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效原创 2021-10-22 16:46:18 · 313 阅读 · 0 评论 -
class 继承的介绍和使用
Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。// 继承class Father { constructor (name, age, sex) { this.name = name this.age = age this.sex = sex } eat () { console.log("我会吃饭"); }}class Son exten原创 2021-10-22 14:40:13 · 269 阅读 · 0 评论 -
class 的介绍和使用
class介绍ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。calss基本语法我们先来回顾一下ES5类的写法function Person(name, age) { this.name = name; this.age = age;}.原创 2021-10-21 16:30:10 · 2385 阅读 · 0 评论 -
Generator 函数的介绍和使用
Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。异步编程对 JavaScript 语言太重要。JavaScript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可。ES6 诞生以前,异步编程的方法,大概有下面四种。回调函数 事件监听 发布/订阅 Promise 对象什么是异步?所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头原创 2021-10-20 14:29:00 · 361 阅读 · 0 评论 -
Promise的介绍和使用
Promise是ES6引入的异步编程的新解决方案。语法止Promise是-一个构造函数,用来封装异步操作并可以获取其成功或失败的结果。Promise 构造函数: Promise (excutor) {} Promise.prototype.then 方法 Promise.prototype.catch 方法Promise的基本使用实例化Promisenew Promise()在实例化的时候接受一个参数, 这个参数是一个函数。这个函数有两个形参,resolve...原创 2021-10-18 17:12:22 · 274 阅读 · 0 评论 -
Symbol的基本使用
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是Javascript语言的第七种数据类型,是一种类似于字符串的数据类型。Symbol的特点Symbol的值是唯一的,用来解决命名冲突的问题 Symbol值不能与其他数据进行运算 Symbol定义的对象属性不能使用for.in循环遍历,但是可以使用Reflect.ownkeys来获取对象的所有键名...原创 2021-10-15 18:18:41 · 1681 阅读 · 0 评论 -
带你了解Es6中的Proxy(代理)的作用
Proxy对象Proxy对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。const p = new Proxy(target, handler)Proxy的参数: target:要使用Proxy包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。 handler:一个通常以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理p的行为。 handler对象...原创 2021-08-18 01:17:35 · 786 阅读 · 0 评论 -
js中的本地存储(webStorage)
webStorage (Window.sessionStorage和Window.localStorage)1.存储内容大小一般支持5MB左右(不同浏览器可能还不一样)2.浏览器端通过Window.sessionStorage和Window.localStorage属性来实现本地存储机制。3.相关API:1.```xxxxxStorage.setItem('key','value');```该方法接受一个键...原创 2021-08-05 16:37:57 · 945 阅读 · 0 评论 -
Object.defineproperty方法详解
Object.defineproperty 的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性Object.defineproperty 参数Object.defineproperty方法需要传递3个参数 Object.defineproperty(obj, prop, desc ) 参数1:obj 需要定义属性的当前对象 参数2:prop 当前需要定义的属性名 参数3:d...原创 2021-07-25 21:55:33 · 11259 阅读 · 3 评论