![](https://img-blog.csdnimg.cn/20210826162404809.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
js基础
js基础
guizi0809
前端漫漫之路,一路有我伴随。
展开
-
es6中标签模板
之所以写这篇文章,是因为`标签模板`是一个很容易让人忽略的知识点原创 2024-02-04 16:33:19 · 945 阅读 · 0 评论 -
js实现万能判断数据类型函数
在实际开发中,经常需要判断数据类型,由于数据类型多种多样,使用的api也多种多样,比如。这里封装一个万能判断数据类型函数,用于判断各种数据类型。在开发过程中,可以创建。文件,用于判断数据类型。原创 2024-01-30 09:27:59 · 190 阅读 · 0 评论 -
解决火狐和safira浏览器不支持e.path问题
无原创 2022-10-27 15:56:36 · 638 阅读 · 0 评论 -
js数组交集、差集和并集
js数组求交集、差集和并集原创 2022-07-15 16:36:30 · 1694 阅读 · 0 评论 -
此this非彼this
定义:this 就是一个指针,指向调用函数的对象。下面介绍四种this的绑定规则。一.默认绑定默认绑定一般出现在全局执行上下文的函数独立调用非严格模式下: this指向全局对象浏览器环境全局对象指Window对象node环境全局对象指Global对象严格模式下:this指向undefined本文环境默认为非严格模式的浏览器环境。 var name = '孙悟空' // 在全局执行上下文,使用var声明的变量会把变量添加到全局对象window中,等同于window.name =原创 2021-08-13 14:45:00 · 89 阅读 · 0 评论 -
promise 面试题
一、基础题题目1: const p = new Promise((resolve, reject) => { console.log(1) resolve(2) console.log(3) }) p.then(res => console.log(res)) console.log(4)1.Promise 对象一旦创建会立即执行执行console.log(1),输出1执行resolve(2),promise由pending的状态改为fulfilled执行con原创 2021-08-11 11:41:02 · 459 阅读 · 0 评论 -
ES6 promise 总结
三个状态:pending、 fulfilled、 rejected两个特点:内部的状态不受外界影响状态一旦改变就不会再改变,任何时候都可以得到这个结果三个缺点:一旦创建就会立即执行,无法中途取消如果不设置回调函数,Promise内部抛出的错误,不会反应到外部当处于pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)基本使用Promise 构造函数接收一个函数作为参数,该函数接收resolve和reject两个函数作为参数。 const p = new Pro原创 2021-07-30 18:26:33 · 121 阅读 · 0 评论 -
ES6模块和CommonJS的区别
ES6模块是编译时加载,CommonJS是运行时加载。ES6模块导入的是值的引用,并且是只读的,无法修改。CommonJS导入的是值的拷贝,可以修改。优点:由于ES6编译时就完成模块加载,效率要比CommonJS模块的加载方式高由于ES6模块是编译时加载,使得静态分析成为可能。能进一步拓宽 JavaScript 的语法,比如引入宏(macro)和类型检验(type system)这些只能靠静态分析实现的功能。CommonJS // 导出 test.js let count = 1 l.原创 2021-07-28 10:22:38 · 157 阅读 · 0 评论 -
js遍历对象注意事项
// 定义一个 person 对象 let person = { name: '孙悟空', [Symbol('age')]: 18 } Object.defineProperties(person, { skill: { value: '七十二变', enumerable: false, }, [Symbol('birthday')]: { .原创 2021-07-22 10:07:58 · 100 阅读 · 0 评论 -
CommonJS模块机制
单个导出 // 导出 exports.name = '孙悟空' exports.sex = '男' exports.showName = () => { console.log('孙悟空') } // 导入 const obj = require('./test.js') // 导入-解构 const { name, sex, showName } = require('./test.js') 批量导出 // 导出 module.exports = { n原创 2021-07-21 16:42:10 · 94 阅读 · 0 评论 -
ES6模块机制
单个导出 // 导出 export let name = '孙悟空' export const sex = '男' export const showName = () => { console.log('孙悟空') } // 导入 import { name, sex, showName } from './test.js'批量导出 // 导出 let name = '孙悟空' const sex = '男' const showName = () => {原创 2021-07-21 16:15:30 · 90 阅读 · 0 评论 -
js中数组reduce方法使用技巧
一、方法介绍定义:对数组中的每个元素执行一个自定义的累计器操作,将其结果汇总为单个返回值。语法: array.reduce((pre, cur, index, array) => {}, initValue)参数:callback:回调函数(必选)initValue:初始值(可选)回调函数的参数pre:它是上一次调用回调时返回的累积值,或initialValue(必选)cur:当前元素(必选)index:当前元素的索引。如果提供了initialValue,则起始索引号为0,原创 2021-07-16 17:02:56 · 180 阅读 · 0 评论 -
如何优雅渲染dom节点?
const box = document.getElementById('box') const container = document.createDocumentFragment() for (let i = 0; i < 1000; i++) { const span = document.createElement('span') span.innerText = '添加文本内容' container.appendChi...原创 2021-07-09 14:51:01 · 89 阅读 · 0 评论 -
js中的节点类型
只读属性 Node.nodeType 表示的是该节点的类型,比如 元素, 文本 和 注释。常量值描述Node.ELEMENT_NODE1一个 元素 节点,例如 <p> 和 <div>。Node.TEXT_NODE3Element 或者 Attr 中实际的 文字。Node.CDATA_SECTION_NODE4一个 CDATASection,例如 <!CDATA[[ … ]]>。Node.PROCESSING_IN.原创 2021-06-04 11:59:43 · 254 阅读 · 0 评论 -
js中 constructor 、__proto__ 和 prototype 的关系
每个构造函数都有一个原型对象 prototype, 每个对象都含有一个特殊的属性 __proto__原型对象 prototype 是一个含有一个特殊属性 constructor 的普通对象,该属性 constructor 指向构造函数实例(对象)的 __proto__ 属性指向构造函数的原型对象 prototype访问对象的属性时,js首先在对象自身属性上找,若没有找到,就会去对象的原型对象中找。由于原型对象也是对象,对象含有 __proto__ 属性,该属性指向对象的原型对象的原型对象。若原型对.原创 2021-05-15 00:28:54 · 166 阅读 · 0 评论 -
js常用小技巧
string 类型的数字前面+,会转换成 number 类型,且去除数字开头所有的0 let a1 = '0000.12345' let a2 = '.12345' let a3 = '' let a4 = '000000000000' let a5 = '000000000100' console.log(+a1) // 0.12345 console.log(+a2) // 0.12345 console.log(+a3) // .原创 2021-05-08 16:11:06 · 361 阅读 · 0 评论 -
js中的冒泡排序、快速排序、选择排序、插入排序
时间复杂度指的是一个算法执行所耗费的时间空间复杂度指运行完一个程序所需内存的大小稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面不稳定指,如果a=b,a在b的前面,排序后可能会交换位置冒泡排序比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一步,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 function .原创 2021-05-08 15:54:28 · 126 阅读 · 0 评论 -
js中的事件委托(事件代理)
事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。为什么要用事件委托?一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了,那如果是很多的dom需要添加事件处理呢?比如我们有1000个li,每个li都有相同的click点击事件,可能我们会用for循环的方法,来遍历所有的li,然后给它们添加事件,那这么做会存在什么影响呢?在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访.原创 2021-05-03 23:12:00 · 131 阅读 · 0 评论 -
js数组去重的几种常用方法(好用!)
在日常开发中,经常要处理一下接口数据,数组去重是处理数据的高频操作。这里简单介绍一些常用的好方法。一、数组元素是基本数据类型 const arr = [1, 2, 3, 4, 1, 2, 3, 4, 1, 1, 5, 2, 4]利用ES6的新的数据结构 Set const uniqueArr = (arr) => Array.from(new Set(arr))利用对象 const uniqueArr = (arr) => { let result = []原创 2021-05-02 22:46:54 · 270 阅读 · 0 评论 -
js中的防抖和节流
防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。使用场景:给按钮加函数防抖防止表单多次提交、输入框连续输入搜索进行ajax请求、判断scroll是否滑到底部 const debounce = (fn, time) => { let timer = null; return (...args) => { clearTimeout(timer); timer = setTimeo.原创 2021-05-02 18:02:49 · 100 阅读 · 0 评论 -
js判断数组的方式有哪些?
通过instanceof做判断通过构造函数通过Object.prototype.toString.call()通过Array.isArray()通过原型链来判断通过Array.prototype.isPrototypeOf const arr = [] // 通过instanceof做判断 arr instanceof Array // true // 通过构造函数 arr.constructor === Array .原创 2021-05-02 16:56:34 · 235 阅读 · 0 评论 -
js数据类型检测的方式有哪些?
typeoftypeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。typeof 100 // numbertypeof NaN // numbertypeof Infinity // numbertypeof true // booleantypeof 'message' // stringtypeof [] // objecttypeof {} // objecttypeof nul原创 2021-05-01 18:32:56 · 250 阅读 · 0 评论 -
js中slice、substr、substring的区别和用法
slice、substr、substring的区别和用法slice参数描述start可选。规定从何处开始选取。如果是负数,那么它规定从尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。如果没有指定该参数,则返回自身的一个副本。end可选。规定从何处结束选取。该参数是结束处下标。如果没有指定该参数,那么从 start 到结束的所有元素。如果这个参数是负数,那么它规定的是从尾部开始算起的元素。注意:参数范围[start, end)原创 2021-04-30 14:44:14 · 248 阅读 · 0 评论