JavaScript
javascript相关信息
Martin-Luo
这个作者很懒,什么都没留下…
展开
-
js小数运算出现的问题(精度丢失)及解决办法-亲测有效
js小数运算出现的问题(精度丢失)及解决办法-亲测有效原创 2022-11-19 14:23:49 · 1286 阅读 · 0 评论 -
微信小程序自定义键盘|仿微信支付数字键盘
实现效果简介点击金额模块区域,获取焦点。点击非金额模块区域,失去焦点且隐藏支付键盘。支持小数点两位数字。付款金额默认置灰,点击付款按钮无效。当输入付款金额后,付款按钮还原正常状态。删除按钮可以通过icon图标或者图片来替换,达到和微信数字支付键盘一样的效果。有更合适的实现方式或者代码不合理的地方,欢迎留言交流实现代码// index.wxml<view class="pay-container" catchtap="handleHiddenKey"> <原创 2022-02-24 12:56:41 · 4167 阅读 · 2 评论 -
Vue动态添加路由(addRoutes) 校验用户是否登录且排除白名单页面
Vue动态添加路由通过官方路由API router.addRoutes 实现。废话不多说直接上代码,欢迎留言交流!const whiteList = ['/login', '/reset-password'] // 可直接访问的白名单页面router.beforeEach(async(to, from, next) => { // 确定用户是否已登录 const hasToken = getToken() // 拿到用户登录的token if (hasToken) { if原创 2021-04-22 19:42:41 · 956 阅读 · 0 评论 -
JS中如何让(a==1&&a==2&&a==3)同时成立
1. Object基础介绍Object.prototype.valueOfvalueOf方法的作用是返回一个对象的“值”,默认情况下返回对象本身。var obj = {};obj.valueOf() === obj // trueconsole.log(obj + 1) // '[object Object]1'Object.prototype.toStringtoString方法的作用是返回一个对象的字符串形式,默认情况下返回类型字符串。var obj= {};obj.toSt原创 2021-07-21 18:05:43 · 641 阅读 · 0 评论 -
document.documentElement.scrollTop与document.body.scrollTop的兼容写法
场景分析document.documentElement与document.body输出DTD相关说明:页面具有 DTD或者说指定了 DOCTYPE 时,使用 document.documentElement。页面不具有 DTD或者说没有指定了 DOCTYPE时,使用 document.body。设置<!DOCTYPE html>效果显示:document.documentElement.scrollTop可以获取滚动的值document.body.scrollTop的值原创 2021-06-05 10:26:47 · 830 阅读 · 0 评论 -
Promise对象详细描述,附项目例子
1. Promise 基本用法Promise:是异步编程的一种解决方案,比较传统的解决方案(回调函数)更合理和强大。有三种状态:pending(进行中)、fufilled(已成功)、rejected(已失败)function getDate(val) { return new Promise((resolve, reject) => { if (val) { resolve('成功') } else { reject('error') }原创 2021-03-21 15:28:45 · 185 阅读 · 0 评论 -
面试题:通过连写参数方式获取object的值
下面代码实现通过’a.b.c’连写的方式实现object的取值:getValue(obj, ‘a.b.c’ // {name: ‘Martin’})代码const obj = { a: { b: { c: { name: 'Martin' } } } }// 函数封装function getValue(obj, keys) { if (typeof keys !== 'string') { thro.原创 2021-03-03 15:26:36 · 794 阅读 · 2 评论 -
js中比较两个对象是否相等,模拟lodash的isEqual
本文章主要介绍了js中比较两个对象是否相同的方法1. 常规比较在两个相同数据的对象中比较值。s1保存一个堆的地址,s2保存一个堆的地址,这两个堆的地址是不同的,所以它们不等。const s1 = { name: 'Martin'}const s2 = { name: 'Martin'}console.log(s1 === s2) // false2. 原生js实现对象是否相等var obj1 = { name: 'Martin', age: 18, obj: { .原创 2021-03-02 18:21:59 · 1527 阅读 · 0 评论 -
Vue+Element中Table懒加载删除或编辑数据后不动态更新
1.问题的来源在Element中使用Table树形数据懒加载(设置 lazy 属性为 true)模式。框架会通过row-key指定的属性来缓存操作者异步请求的数据 ,所以我们进行删除或编辑操作后重新请求数据,框架会优先通过row-key指定的id来检查是否已存在,如果数据存在使用旧数据,如果数据不存在使用新数据,所以table中查看更新后的数据发生没有变化。下面是实际演示例子:代码:<template> <el-table ref="table" :dat.原创 2021-02-24 18:20:46 · 4752 阅读 · 1 评论 -
函数式编程01之纯函数、函数组合或饲养函数、结合律
1.什么是纯函数概念:相同的输入得到相同的输出,不依赖且不影响外部环境也不产生任何副作用。优点:易读/易维护。代码:不是纯函数:var a = 1;function test() { console.log(a); // 当a的值被改变后,下次在执行test()会得到不同的结果}test()纯函数:var a = 1;function test(num) { console.log(num);}test(a);2.函数组合或饲养函数概念:由若干个纯函数、偏函数.原创 2021-02-21 12:08:31 · 169 阅读 · 0 评论 -
JS运算符及显示隐式类型转换
1.加法规则布尔值和布尔值相加、数字和布尔值相加。布尔值默认会自动转成数值,然后相加。console.log(true + false) // 1console.log(2 + true) // 3两个字符串相加。这时加法运算符会变成连接运算符,返回一个新的字符串。console.log('abc' + 'def') // abcdef字符串与非字符串相加。这时非字符串会转成字符串,再连接在一起。console.log(123 + 'abc') // 123abc对象.原创 2021-02-21 12:06:47 · 130 阅读 · 0 评论 -
JS中的函数节流及实现
1.什么是函数节流概念:函数节流(throttle)是指连续触发事件,但是在n秒中只执行一次.2.什么时候会使用函数节流前端开发过程中有一些事件onresize,scroll,mousemove 等等,在短时间内会被频繁触发。如果不做限制的话有可能一秒之内执行几十次、几百次,那不仅会浪费计算机资源,还会降低程序运行速度,严重的话甚至造成浏览器卡死、崩溃,这种问题显然是致命的。所以需要我们去减少不必要的执行次数。3.代码实现/** * 节流 * @param {Function} f.原创 2021-02-21 12:05:09 · 1087 阅读 · 0 评论 -
JS中的函数防抖及实现
1.什么是函数防抖概念:函数防抖(debounce)是指触发事件后,在 n 秒内函数只能执行一次,如果触发事件后在 n 秒内又触发了事件,则会重新计算函数延执行时间。2.什么时候会使用函数防抖前端开发过程中有一些事件onresize,scroll,mousemove 等等,在短时间内会被频繁触发。如果不做限制的话有可能一秒之内执行几十次、几百次,那不仅会浪费计算机资源,还会降低程序运行速度,严重的话甚至造成浏览器卡死、崩溃,这种问题显然是致命的。所以需要我们去减少不必要的执行次数。3.代码.原创 2021-02-20 19:52:29 · 524 阅读 · 0 评论 -
Object-属性类型
ECMAScript中有两种属性:数据属性和访问器属性数据属性数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有4个描述其行为的特征。1.[[writable]]: 表示能否修改属性的值。默认值为 true2.[[Enumerable]]: 表示能否通过for-in循环返回属性。默认值为 true3.[[Configurable]]: 表示能否通过delete删除属性从而从新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true4.[[valu原创 2021-02-20 17:22:52 · 431 阅读 · 0 评论 -
javaScript encodeURL与encodeURLComponent区别
1. URL编码方式Global对象的encodeURL()和encodeURLComponent()方法可以对URL进行编码。有效的URL中不能包含某些字符串,例如空格。他们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器理解。encodeURL()主要用于整个URL,而encodeURLComponent()主要用于对URL中的某一段。它们的区别在于,encodeURL()不会对本身属性url的特殊字符进行编码,例如“冒号、正斜杠、问号、井号”;而encodeURLComponent()则会对原创 2021-02-20 17:16:44 · 1003 阅读 · 0 评论 -
javaScript垃圾收集
javaScript具有自动垃圾收集机制,开发人员不用再关心内存的使用问题,执行环境会负责管理代码执行过程中使用的内存。垃圾收集器会按照固定的时间间隔,周期性地执行这一操纵。1. 标记清除javaScript中最常用的垃圾收集方式是标记清除。垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记。然后它会去掉环境中的变量以及被环境中的变量引用的变量的标记。而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后,垃圾收集器完成内存清除工作。销毁那些带有标记原创 2021-02-20 17:15:00 · 94 阅读 · 0 评论 -
javaScript简介
1.前言它是一种轻量级的脚本语言。所谓“脚本语言”(script language),指的是它【不具备开发操作系统】的能力,而是只用来【编写控制其他大型应用程序】(比如浏览器)的“脚本”。它也是一种嵌入式(embedded)语言。它本身提供的核心语法不算很多,只能用来做一些数学和逻辑运算。JavaScript 本身不提供任何与 I/O(输入/输出)相关的 API,都要靠【宿主环境】(host)提供,所以 JavaScript 只合适嵌入【更大型】的应用程序环境,去调用宿主环境提供的底层 API。2.原创 2021-02-20 17:11:58 · 122 阅读 · 0 评论