JS
JS知识
我是来写bug的吧
我有恐女症!
展开
-
将字符串按长度截取成数组
截取字符串换行显示原创 2022-06-17 14:23:13 · 501 阅读 · 0 评论 -
js中的深浅拷贝
堆和栈其实深拷贝和浅拷贝的主要区别就是其在内存中的存储类型不同。堆和栈都是内存中划分出来用来存储的区域。栈(stack)为自动分配的内存空间,它由系统自动释放;而堆(heap)则是动态分配的内存,大小不定也不会自动释放。数据类型数据类型分为:基本数据类型 和 引用数据类型。基本类型基本数据类型存放在栈中。存放在栈内存中的简单数据段,数据大小确定,内存空间大小可以分配,是直接按值存放的,所以可以直接访问。基本类型的比较是值的比较,只要它们的值相等就认为他们是相等的。比较原创 2022-04-27 16:45:57 · 120 阅读 · 0 评论 -
js执行顺序
JS有同步任务和异步任务,异步任务又分为宏任务和微任务。将JS执行队列分为:执行队列、宏任务队列、微任务队列。微任务包括 :process.nextTick,promise宏任务包括:script,setTimeout,setInterval,setImmediateJS代码在执行时会先将所有代码放到执行队列中依次执行,在执行中碰到宏任务时,将其放到宏任务队列等候,遇到微任务放到微任务队列等候,执行队列的代码执行完后检查微任务队列,有就放到执行队列中执行,没有就检查宏任务队列...原创 2022-04-27 15:27:08 · 3243 阅读 · 0 评论 -
ES6之数组的flat(Infinity)扁平化,实现多维数组转成一维数组
let arr= [1,2,[[3,4],[5,6]]] console.log(arr.flat(Infinity)); // [ 1, 2, 3, 4, 5, 6 ] console.log(arr.flat()); // [ 1, 2, [3,4],[5,6] ] console.log(arr.flat(1)); // [ 1, 2, [3,4],[5,6] ] console.log(arr.flat(2)); // [ 1, 2, 3, 4, 5, 6 ]原创 2021-12-28 16:37:29 · 808 阅读 · 4 评论 -
Object.keys、Object.values、Object.entries
Object.keys()参数:要返回其枚举自身属性的对象返回值:一个表示给定对象的所有可枚举属性的字符串数组处理对象,返回可枚举的属性数组 let obj ={ name:'小明', age:18, hobby:'打豆豆' } console.log(Object.keys(obj)); // [ "name", "age", "hobby" ]处理数组,返回索引值数组 let arr = [1, 2, 3, 4, 5, 6] console原创 2021-12-28 16:23:40 · 444 阅读 · 0 评论 -
使用ES6 新特性
一、关于取值的吐槽取值在程序中非常常见,比如从对象obj中取值。const obj = { a:1, b:2, c:3, d:4, e:5,}吐槽:const a = obj.a;const b = obj.b;const c = obj.c;const d = obj.d;const e = obj.e;或者const f = obj.a + obj.d;const g = obj.c + obj.e;吐槽:“不会用E原创 2021-12-28 11:23:40 · 141 阅读 · 0 评论 -
textarea实现高度自适应
<body> <textarea></textarea><script> var textarea =document.querySelector("textarea"); autoTextarea(textarea); var autoTextarea = function(elem, extra, maxHeight) { extra = extra || 0; var isFirefox = !!document.getBox.原创 2021-12-22 11:00:50 · 278 阅读 · 0 评论 -
将具有父子孙结构的平级数据转换成树形结构
// parentdId为0的都是一级,二级的parentId等于一级的id let arr = [ { id: 1, menuName: "并列的一级(1)", parentId: 0, children: [], }, { id: 10, menuName: "(1)的下一级", parentId: 1, children: [], }, .原创 2021-12-03 15:46:30 · 293 阅读 · 0 评论 -
es6 Object.keys() 一个数组覆盖另一个数组属性值
let pastInfo = { name:'小明', age:18, hobby:'打篮球', school:'高中', placeOfAbode:'北京' } let nowInfo = { name:'小明', age:22, hobby:'学习', schoo..原创 2021-12-02 18:02:10 · 991 阅读 · 0 评论 -
js格式化标准时间Thu Dec 02 2021 10:29:45 GMT+0800 (中国标准时间)转化成字符串
var nowTime = new Date(); let time = nowTime.getFullYear() + '-' + (nowTime.getMonth() + 1) + '-' +nowTime.getDate() + ' ' + nowTime.getHours() + ':' + nowTime.getMinutes() + ':' + nowTime.getSeconds(); console.log(time);原创 2021-12-02 10:33:21 · 2255 阅读 · 0 评论 -
解决使用ajax请求后台返回的二进制流图片
后台返回是:而我在浏览器响应里看到的是:解决方法: function getIdentifyingCode( callback) { var xhr = new XMLHttpRequest() xhr.responseType = "blob"; var url = `` xhr.open("GET", url) xhr.send() xhr.onreadystatechange = function () {..原创 2021-10-27 10:14:47 · 587 阅读 · 0 评论 -
js计算未来时间距离当前时间的时间差
// time格式为yyyy-mm-dd hh:mm:ss 指定时间 function computTime(time) { // 当前时间的时间戳 var nowTime = Date.parse(new Date()); // 指定时间的时间戳 var endTime = Date.parse(new Date(time)); if (endTime < no..原创 2021-10-20 17:00:44 · 1101 阅读 · 0 评论 -
js实现放大镜 (可以点击切换图片)
1.先看看效果鼠标不移入的效果鼠标移入的效果点击下方的图片可以切换要放大的图片原创 2021-09-18 15:46:48 · 390 阅读 · 0 评论 -
js获取当前时间(年月日、小时分钟秒、星期几)
var weekday = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"] function formatTime(time, fmt) { if (!time){ return '' }else { const date = new Date(time); const o = { ...原创 2021-08-27 13:56:39 · 2070 阅读 · 0 评论 -
JS字符串常用方法
1.indexof()返回某个指定的子字符串在字符串中第一次出现的位置,如果查找的字符不在字符串中返回为-1。 var s = "abcdefghj" console.log(s.indexOf("a")) // 返回索引值 0 console.log(s.indexOf("w")) // -12.lastIndexOf()返回某个指定的子字符串在字符串中最后出现的位置,如果查找的字符不在字符串中返回为-1。 var s = "abcdefghj" console.log原创 2021-07-26 16:46:08 · 93 阅读 · 0 评论 -
js数组的常用方法
1.push()向数组的末尾添加一个或多个元素,返回值为新数组的长度,数组内容发生变化。 var arr =[10,20,30,40] var num = arr.push(50) console.log(num) // 5 返回值为新数组的长度 console.log(arr) // [ 10, 20, 30, 40, 50 ] 数组内容发生变化2.pop()删除数组的最后一个元素,返回值为删除的元素,数组内容发生变化。若该数组为空,则返回undefined。 v..原创 2021-07-23 18:11:18 · 74 阅读 · 0 评论