var index = dataList.map(function (item) { return item.Id; }).indexOf(Id);
1、基本用法Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target )。var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3}Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性:var target = { a: 1, b: 1 }; var source1 = { b: 2, c: 2 }; var source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3}如果只有一个参数,Object.assign会直接返回该参数:var obj = {a: 1}; Object.assi
js日期格式化,输入20230812,输出2023-08-12// 方法一: function getAdjustTime(timeStr) { return timeStr.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3'); } console.log(getAdjustTime("20190416")); //2019-04-16 // 方法二: function fomateDate(date) { let dateArr = date.split("").map((item, index) => { if (index == 3 || index == 5) { item = item + "-"; } return item; }); return dateArr.join(""); } console.log(fomateDate("20231123")); //2023-11
使用场景如下图:只截取一个:let str = '我是一只小青龙' let middle='***' function filter(str,middle) { return str[0]+middle+str[str.length-1] } console.log(filter(str,middle));截取指定个数: let str = '我是一只小青龙' let m = '***' function forMate (str, start = 1, end = 1, middle = '***') { const startStr = str.slice(0,start) const endStr = str.slice(str.length-end,str.length) return startStr + middle + endStr } console.log(forMate(str,2,3,m)); //
1、将时间戳转换成日期格式:function timestampToTime(timestamp) { // 时间戳为10位需*1000,时间戳为13位不需乘1000 var date = new Date(timestamp * 1000); var Y = date.getFullYear() + "-"; var M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-"; var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " "; var h = date.getHours() + ":"; var m = date.getMinutes() + ":";
JavaScript中的this在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定)。this 不能在执行期间被赋值,并且在每次函数被调用时 this 的值也可能会不同。如何确认this的值:在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。1.全局执行环境中,指向全局对象(非严格模式、严格模式)2.函数内部,取决于函数被调用的方式 1.直接调用的this值:a.非严格模式:全局对象(window) b.严格模式:undefined2.对象方法调用的this值:调用者 /** * 如何确认this的值 * 1.全局执行环境 * 严格模式,非严格模式:全局对象(window) * 2.函数内部 * 2.1 直接调用 * 严格模式下:undefined * 非严格模式:全局对象(window) * 2.2 对象方法调用 * 严格模式,非严格模式:调用者 * 3.开启严格模式 * 脚本开启: 'use st
小火箭是字体图标,需要引入阿里巴巴图标库:<link rel="stylesheet" href="./css/iconfont.css">页面样式:body{ margin: 0; padding: 0; height: 100vh; background: linear-gradient(135deg, #473B7B 0%,#3584A7 51%,#30D2BE 100%); } span.iconfont{ color: #fff; font-size: 80px; position: absolute; text-shadow: 0 8px 18px #000; }html代码:<span id="rocket" class="iconfont icon-huojian"></span>js代码:let rocket=document.querySelector("#rocket"
注:该实例需要在php环境运行目录结构如下图:先看页面部分,html代码如下:<body> <div id="container"> <div id="main"> <h1>请输入用户名输入数据</h1> </div> <div id="contorll"> <input type="text" id="uname"> <button>请求</button> </div> </div> <script src="demo.js"></script> </body>接下来是样式:body{ min-height: 100vh;
节流:在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发。在滚动条滚动事件里,每隔2s弹出广告 window.onscroll=throttle(function(){ alert('这是广告') },2000) function throttle(fn,delay){ let t = true return function(){ if( t){ setTimeout(() => { fn.call(this); t=true }, delay); } t = false } }
防抖:前面的所有的触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行一次js实现防抖,短时间内多次触发的方法,只执行最后一次 let input = document.querySelector('input') let t = null input.oninput = function(){ if(t!=null){ clearTimeout(t) //每次执行前都清除一次定时器 } t = setTimeout(() => { console.log(this.value) }, 500); }代码优化后(闭包): let input = document.querySelector('input') input.oninput=debounce(function(){
铅笔Naruto
前端攻城狮