JS
文章平均质量分 51
jatej
一个java转前端的小垃圾
展开
-
js中的原型链
每一个函数都有一个prototype属性,成为原型,而原型的值也是一个对象,因此它也有自己的原型,这样就串起了一条原型链;原型链的链头是Object,他的prototype比较特殊,值为null;每个函数都有一个prototype属性,它是一个引用变量,默认指向一个空的object对象。当调用一个对象的函数或者是属性的时候,如果在当前对象里面找不到,那么就会在原型对象上逐层寻找;在javascript中,所有的对象都有一个__proto__的属性,它指向了当前对象的原型(prototype)。原创 2023-05-14 11:07:42 · 951 阅读 · 1 评论 -
常用的正则校验工具类
// 常用的正则校验/** * 邮箱格式验证 */export const isEmail = (s) => { return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)}/** * 手机号码格式验证 * @param {*} s * @returns */export const isMobile = (s) => { return /^1[0-9]{.原创 2021-12-20 10:17:43 · 354 阅读 · 0 评论 -
类型校验工具类
// js中常用的格式校验/** * 判断是否为字符串 * @param {*} o * @returns */export const isString = (o) => { return Object.prototype.toString.call(o).slice(8, -1) === 'String'}/** * 判断是否数字 * @param {*} o * @returns */export const isNumber = (o) => {.原创 2021-12-20 10:13:59 · 208 阅读 · 0 评论 -
html工具类
// html便捷操作js/** * 去除字符串中的html标签 * @param {*} str * @returns */export const removehtmltag = (str) => { return str.replace(/<[^>]+>/g, '')}/** * 动态引入js * @param {*} src */export const injectScript = (src) => { const s = .原创 2021-12-20 10:13:16 · 139 阅读 · 0 评论 -
格式校验工具类
// 常用的正则校验/** * 邮箱格式验证 */export const isEmail = (s) => { return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)}/** * 手机号码格式验证 * @param {*} s * @returns */export const isMobile = (s) => { return /^1[0-9]{.原创 2021-12-20 10:12:39 · 442 阅读 · 0 评论 -
其他常用的工具方法
// 其他方便操作的工具/** * 数组随机洗牌 * @param {*} arr * @returns */export const shuffle = (arr) => { var result = [], random; while (arr.length > 0) { random = Math.floor(Math.random() * arr.length); result.push(arr[random]) arr.spl.原创 2021-12-20 10:11:29 · 178 阅读 · 0 评论 -
浏览器校验工具类
// 浏览器校验/** * 判断是否微信浏览器 * @returns */export const isWeiXin = () => { return ua.match(/microMessenger/i) == 'micromessenger'}/** * 判断是否移动端设备 * @returns */export const isDeviceMobile = () => { return /android|webos|iphone|ipod|balckbe.原创 2021-12-20 10:10:23 · 258 阅读 · 0 评论 -
js之如何实现 new、apply、call、bind 的底层逻辑
先思考几个问题:用什么样的思路可以 new 关键词? apply、call、bind 这三个方法之间有什么区别? 怎样实现一个 apply 或者 call 的方法?一、方法的基本介绍1.1new 原理介绍new 关键词的主要作用就是执行一个构造函数、返回一个实例对象,在 new 的过程中,根据构造函数的情况,来确定是否可以接受参数的传递。下面我们通过一段代码来看一个简单的 new 的例子。function Person(){ this.name = 'Jack';}.原创 2021-09-16 12:41:03 · 317 阅读 · 0 评论 -
JS 常见的 6 种继承方式
继承可以使得子类别具有父类的各种方法和属性。先思考几个问题: JS 的继承到底有多少种实现方式呢? ES6 的 extends 关键字是用哪种继承方式实现的呢? 一、JS 实现继承的几种方式第一种:原型链继承原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。 function Parent1() { this.n原创 2021-09-15 22:22:56 · 23338 阅读 · 4 评论 -
js实现深浅拷贝
一、浅拷贝的原理与实现浅拷贝的定义:自己创建一个新的对象,来接受你要重新复制或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象;但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这个内存中的地址,肯定会影响到另一个对象。方法一:object.assignobject.assign 是 ES6 中 object 的一个方法,该方法可以用于 JS 对象的合并等多个用途,其中一个用途就是可以进行浅拷贝。该方法的第一个参数是拷贝的目标对象,后面的参原创 2021-09-15 21:49:40 · 250 阅读 · 0 评论 -
js的数据类型
参考地址:JavaScript 核心原理精讲一、JS支持的数据类型JavaScript 的数据类型有下图所示的 8 种:注意:其中,前 7 种类型为基础类型,最后 1 种(Object)为引用类型 引用数据类型(Object)又分为图上这几种常见的类型:Array - 数组对象、RegExp - 正则对象、Date - 日期对象、Math - 数学函数、Function - 函数对象 各种 JavaScript 的数据类型最后都会在初始化之后放在不同的内存中,因此上面的数据类型大.原创 2021-09-15 09:57:33 · 228 阅读 · 0 评论