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(){
该实例模拟实现Vue中 v-model 实现双向绑定的原理html部分,一个 input 标签输入,h2 标签用来显示输入的数据 <input type="text"> <h2></h2>js部分: let input=document.querySelector('input') let h2=document.querySelector('h2') let obj={ msg:'haha' } input.value=obj.msg h2.innerText = obj.msg input.addEventListener('input',function(e){ obj.msg = e.target.value }) //Object.defineproperty 的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存
let myreg=/^[1][3,4,5,6,7,8,9][0-9]{9}$/ if(!myreg.test(mobile)){ app.checkForm('手机号格式不正确') }
铅笔Naruto
前端攻城狮