Javascript

分类下相关文章

js 三元表达式的简写形式

在微信小程序的 wxml 模板里写三元表达式写吐了,满眼都是这种逻辑: <image src="{{member.user.avatar ? member.user.avatar : '/images/default_avatar.png'}}" /> 查了一下 js 里确实存在简写形式: <image src="{{member.user.avatar || '/images/default_avatar.png'}}" /> expr1 || expr2 若 expr1 可转换为 true,则返回 expr1;否则,返回 ...

阅读全文...

js 除法保留两位小数

当金额存储以分单位需要转换为元时,需要除以100。 JS 中如果直接除 100,显示的格式比较乱 > 1001 / 100 10.01 > 1000 / 100 10 统一保留两位小数 function formatMoney(money) { return (money * 1.0 / 100).toFixed(2) } > formatMoney(1000) "10.00" > formatMoney(1001) "10.01" ...

阅读全文...

jquery 判断元素可见性

正在做的一个自动挂学时的 tampermonkey 插件,遇到一个问题。 即如何判断定时出现的答题页面,如果是判断题目标题是否存在,会有 bug。因为可能外层的还包了一层 div,而外层 div 设置了 css 样式 display: none。 所以,我需要能使用 jQuery 判断一个元素是否可见,包括其祖先也必须是可见的。 找了半天没有找到解决方案,只能判断其最外层的是否设置了 display none。 if ($('.some_window') && $('.some_window').css("display") != "none&qu ...

阅读全文...

javascript 合并两个数组

在写微信小程序时,经常需要将接口返回的数组,追加到当前 array。即,合并两个数组。 两种实现方式 var a1 = [1, 2, 3]; var a2 = [4, 5, 6]; // 方法一 a1.concat(a2) > (6) [1, 2, 3, 4, 5, 6] // 方法二,ES6 新语法 [...a1, ...a2] > (6) [1, 2, 3, 4, 5, 6] 哪种写法可读性更好 我觉得 concat 的写法,可读性更好一些。 ...

阅读全文...

ES6 Promise

promise 的意义 解决了之前不断嵌套异步回调的问题。 可以以同步的语法,来执行异步的操作。 参数 resolve 与 reject 是用来做什么的 以封装微信小程序的 wx.request 来统一处理错误码为例。 promise 对象必须使用 resolve 和 reject 做为返回么 then 必须使用两个回调函数作为参数么? 我看还有使用一个参数的情况。 原来,第二个参数是可选的,即不处理 reject 的情况。 then 的 catch 与第二个回调函数同时存在时会用哪个 then的第二个参数和catch方法都存在的情况下,只有then的第二个参数能捕获到; 如果then的第二 ...

阅读全文...

ES6 函数参数等于空大括号的用法

今天发现一段看不懂的 ES6 新语法: const http = ({ url = '', param = {}, type = 'json', callback = '', ...other } = {}) => { // ... } 我不明白为何字典参数还要用空大括号来赋值的意义。 先写一段测试代码:test.js function showInfo({name = "zhongwei", age = 99} = {}) { console.log(name); console.log(age); } function sho ...

阅读全文...

javascript array 数组只保留前 N 项

例如,在微信小程序中,只保留最近搜索的 20 条记录。 使用 js array 的 slice 方法,slice 英文是切开的意思: 第一个参数是起始下标 index,从 0 开始计数 第二个参数是结尾元素下标,但是不包含该元素。 > var a = [1, 2, 3, 4, 5]; > a.slice(0, 2) (2) [1, 2] > a.slice(0, 3) (3) [1, 2, 3] > a = a.slice(0, 3) (3) [1, 2, 3] > a (3) [1, 2, 3] ...

阅读全文...

jQuery 实现商品列表实时搜索过滤

目标效果 输入时,实时过滤 为空时,显示所有结果 url 随关键词变化 过滤逻辑 loop item title 先全部隐藏,如果 title 中有关键词,则显示 多个关键词,包含其中一个就显示 如果产品关键词中包含搜索词,也显示,例如搜索硫酸铜 影响因素 当前选中的分类 是否显示更多 未来加入的 tag 但是为了降低代码的维护难度,以及对搜索关键词的明确度的信任,我决定不考虑这三条因素。。。 tag 可以在未来考虑一下。 实时过滤效果并不好 jquery 监听 input 事件,如何排除中文拼音输入法敲字母的过程 da da'y da'yi da'yin da'yin'j da' ...

阅读全文...

修改浏览器当前网页链接,但是页面不调整

用于在过滤商品分类时,在浏览器地址栏给出对应的 URL,方便分享。但是又会引起浏览器跳转页面。 JS 实现 window.history.pushState({}, "", "/new-url?key=value"); 如何判断当前浏览器是否支持 pushState if (window.history && window.history.pushState) 参数 history.pushState(state, title[, url]) state,一个 js object,用于存储一些状态值。如果只是为了修改 URL,这 ...

阅读全文...

页面禁止复制和右键菜单的应对方法

有时候从网上搜集资料,会发现一些网站禁用了复制和右键菜单功能。 首先明白一点,禁用功能是用 JS 实现的。 如果仅仅保存 HTML 还是不能解决,就需要检查是不是 JS 禁用代码是不是写在了 HTML 文件内。 解决方法 Ctrl + S 保存当前网页,选择仅保存 HTML。 使用记事本打开保存的 HTML,删除 body 标签内的其余部分,仅仅保留 body。保存。 使用 Chrome 打开该 HTML,即可复制内容。 代码示例 <body id="products_detail" onmouseup="document.selection.empt ...

阅读全文...

DevTools failed to parse SourceMap

最近用 Chrome 浏览器调试网站前端代码时,总是看到 Console 里报错: DevTools failed to parse SourceMap: some-domain/js/maps/swiper.min.js.map SourceMap 是什么 通常网站加载的 JS 会做压缩处理,以节省带宽。但是这样处理之后,JS 代码通常变成了一行,在报错时,无法看到错误的准确定位。而 Source Map 就是为了解决这个问题。 Source map 可以看成一个映射表,存储了转换后的代码所对应的转换前的位置。 这样,JS 报错的时候,Chrome Console 里就能直接显示原始代码 ...

阅读全文...

jQuery 实现点击按钮缓慢地滑向页内目标锚点

默认的页内跳转效果太突兀,感觉还是慢慢地滑动比较直观,容易理解 $('.btn').click(function(e){ e.preventDefault(); var jumpId = $(this).attr('href'); $('body, html').animate({scrollTop: $(jumpId).offset().top}, 'slow'); }); ...

阅读全文...

javascript 将英文标题中每个单词首字母大写

我的英文博客大部分内容来自我中文博客的翻译,为了节省时间,我想将翻译好的英文博客标题自动格式化,即,英文标题中每个单词首字母转换为大写。 javascript 实现代码: function format_en_title(title) { var words = title.trim().toLowerCase().split(' '); var ignore_words = ["of", "to", "the", "in"]; for (var i = 0; i < words.l ...

阅读全文...

Google 分析实现跨域名统计

有些场景下,需要将多个不同的域名放到同一个 Google 分析的媒体资源下,这样所有流量就能在统一的视图下查看。举个例子: 推广/引流类的网站域名是 www.a.com 及 www.b.com 在线下单购买的网站域名是 www.c.com 用户可能先搜索到了 www.a.com 里的内容,然后产生了购买欲望,然后跳转到 www.c.com 进行下单。要监控 a.com 到 c.com 的访问路径,及转化率,就需要将这三个域名放到一个媒体资源下。 示例代码 <!-- Global site tag (gtag.js) - Google Analytics --> <scri ...

阅读全文...

百度统计事件分析对出站链接进行统计

我有一些对出站链接点击情况进行统计的需求,例如: 阿里云大使链接的访问量。 京东联盟返利链接的点击情况。 这些都需要统计页面的 URL,及点击量。我好根据统计数据来判断具体页面的转化率是否符合预期。 之前只用过百度统计的自定义上报功能,但是不知道如何跟踪出站链接。 百度统计官方文档中的例子 https://tongji.baidu.com/web/help/article?id=236&type=0 对当前页面的客户端下载链接进行点击事件统计,具体示例代码如下: <a id="download" onclick="_hmt.push(['_tra ...

阅读全文...

近期节日

2020年10月01日 国庆节
2020年10月01日 中秋节
2020年10月04日 世界动物日
2020年10月08日 寒露
2020年10月09日 世界邮政日
2020年10月10日 辛亥革命纪念日
2020年10月13日 中国少年先锋队诞辰日
2020年10月14日 世界标准日
2020年10月15日 国际盲人节
2020年10月16日 世界粮食日
2020年10月17日 国际消除贫困日
2020年10月22日 世界传统医药日
查看更多节日