js
Liar丶
这个作者很懒,什么都没留下…
展开
-
微信升级后不再使用x5内核,debugx5.qq.com打不开,如何开启微信调试?
微信内H5页面调试原创 2022-11-28 17:10:53 · 16710 阅读 · 2 评论 -
前端多字段模糊查询
这里写自定义目录标题const arr = [ {id: "1", en: "Afghanistan", cn: "阿富汗", code: "93"}, {id: "2", en: "Iraq", cn: "伊拉克", code: "964"}, {id: "3", en: "Qatar", cn: "卡塔尔", code: "974"}, {id: "4", en: "China", cn: "中国", code: "933"},]/** * @descriptio原创 2021-09-28 19:11:09 · 841 阅读 · 0 评论 -
JS跳出for循环三种方法的区别(break, continue, return)
breakfor(let i = 0; i < 5; i++) { if(i == 3) { break; } console.log(i);}// 0 1 2break会终结当前for循环体continuefor(let i = 0; i < 5; i++) { if(i == 3) { continue; } console.log(i);}// 0 1 2 4continue仅仅停止该原创 2021-02-09 16:07:09 · 13043 阅读 · 0 评论 -
详解函数表达式与函数声明的区别
函数声明function a() { console.log("函数声明");}函数表达式var b = function () { console.log("函数表达式");};看一道常见面试题:getName(); //函数声明var getName = function () { console.log("函数表达式");};getName(); //函数表达式function getName() { console.log("函数声明");}getNam原创 2020-09-11 11:50:15 · 360 阅读 · 0 评论 -
具名的IIFE函数内部对函数再次赋值问题
var b = 10; (function b(params) { b = 20; console.log(b); }); console.log(typeof b);函数表达式与函数声明不同,函数名只在该函数内部有效,并且此绑定是常量绑定。对于一个常量进行赋值,在 strict 模式下会报错,非 strict 模式下静默失败。IIFE中的函数是函数表达式,而不是函数声明。另外,JS将function 关键字当做函数声明的开始,但是函数声明后面不能跟圆括号表.转载 2020-09-11 11:16:06 · 449 阅读 · 0 评论 -
better-scroll 在ios下,滑动过快时触发回弹(看到滑动之后,又弹回原处再次滑动)
问题出现背景:IOS版本:13.4版本,在Safari以及iphone微信下在better-scroll区域快速滑动时,均会出现该问题处理办法经查询是better-scroll插件在ios下的兼容性问题,github下有对应issue目前插件在2.x版本已修复该问题,如果还在使用1.x,需要升级到2.x版本,1.x版本下插件作者目前尚未修复该bug备注better-scroll 2.x文档...原创 2020-08-10 09:57:36 · 1330 阅读 · 0 评论 -
prettier升级2.0后报错
报错如下:[error] No files matching the pattern were found: "src/**/*.js".[error] No files matching the pattern were found: "src/**/*.jsx".[error] No files matching the pattern were found: "src/**/*.json".[error] No files matching the pattern were found: "s原创 2020-05-13 18:43:04 · 5276 阅读 · 0 评论 -
JS获取指定日期和当前日期关系(前天,昨天,今天,明天,后天)
项目中用到ts,如不需要请手动删除相关代码/** * 获取当前日期零点的时间戳 * @param date */function getStartTimestampOfDay(date: Date): number { try { return new Date( date.toISOString().replace(/\d{2}:\d{2}:\d{2}\.\d{...原创 2020-03-06 17:24:15 · 633 阅读 · 0 评论 -
JS格式化时间为各种常用字符串类型
可以将Date转为项目中常用到的各种string类型// 项目中使用到了ts,不需要请手动删除掉ts相关代码function formatDate(format: string, date: Date): string { const o: { [key: string]: number; } = { "M+": date.getMonth() + 1, // 月份 ...原创 2020-03-06 17:06:57 · 659 阅读 · 0 评论 -
去除移动端alert弹框中title(网页地址)
function test(){ // 覆盖默认alert方法 window.alert = function (name) { var iframe = document.createElement("IFRAME"); iframe.style.display = "none"; iframe.setAttribute("src", '...原创 2019-10-14 17:02:42 · 2153 阅读 · 0 评论 -
获取数组中最大值和最小值(使用apply或扩展语句 spred operator)
Math.max()函数返回一组数中的最大值(一组数而不是数组!!),例如Math.max('1','2','3')或者 Math.max(1,2,3)。如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。通过apply方法可以将数组中的值传到Math.max方法中作为参数。从而实现获取数组中最大值。使用了apply()使获取数组中的最大值和最小值更为简单。let a =原创 2018-01-05 14:00:48 · 419 阅读 · 0 评论 -
详解JS继承的多种实现方式
(1) 借助构造函数实现继承function Parent(){ this.name = ‘lxf’;}function Child(){ Parent.call(this); this.age = 18;}这种方式只能实现部分继承,即父类的构造方法中的属性,子类可以继承,其缺点是,父类原型上的属性或方法,子类无法继承。(2)借助原型链实现继承func...转载 2018-07-25 10:48:34 · 242 阅读 · 0 评论 -
构造函数中return 不同类型的值(对象或非对象)
function F1() { this.name= 'zhangsan'; return [];}var f1=new F1();console.log(f1);//[]console.log(f1.name);//undefinedfunction F2() { this.age = 10; return 20; }var f2=n...原创 2018-09-05 15:57:48 · 1064 阅读 · 0 评论 -
在https下使用require.js加载百度地图api
百度地图的加载方式比较奇葩,百度提供的cdn加载地址是这样的http://api.map.baidu.com/api?v=2.0&amp;ak=xxx,但是实际上,在网页上直接打开这个地址,返回的内容如下(function () { window.BMap_loadScriptTime = (new Date).getTime(); document.write( ...原创 2018-09-12 19:44:31 · 2153 阅读 · 0 评论 -
微信公众号踩坑笔记
记录一些在微信公众号开发中碰到的问题配置IP白名单需要动态获取当前页面完整的URL地址(包括?后面的参数,但不能包含#号),如若URL地址为:http://www.xxx.xxx/payment/wxpay/jspay?oid=xxxx&attr=xxxx#wechat,那么完整的URL地址应该是截取#号之前的部份。为什么会出现#号呢?因为你的URL在被分享到朋友圈等微信系统自动会...原创 2018-09-13 15:48:12 · 560 阅读 · 0 评论 -
[] == []、[] == ![]、[] == {}、new String('a') == new String('a')引出转换类型比较运算符('==') 使用时的各种隐式类型转换
严格比较运算符(===)使用严格比较运算符时,不存在隐式类型转换,就不做太多说明。转换类型比较运算符(==)在使用’=='时,如果两个类型的值进行比较,会出现隐式类型转换。具体转换规则大致如下:类型类型比较时的转换对象对象同类型比较不发生类型转换,但是会比较两者所指向的内存地址,此处需要注意的是,new String(‘a’) == new String(‘a’)...原创 2019-02-21 16:01:17 · 381 阅读 · 0 评论 -
最新前端面试题整理(持续更新中)
1.写出下面程序的运行结果:console.log([] == ![])console.log([] == [])console.log([] == {})console.log(new String('a') == new String('a'))console.log(isNaN(NaN))console.log(isNaN('32131dsafdas'))console.log...原创 2020-09-28 14:10:20 · 1597 阅读 · 1 评论 -
JS 随机打乱数组
以前项目中常用的打乱数组的方法[1,2,3,4,5,6].sort(function(){ return Math.random() - 0.5})或者使用更简洁的ES6代码[(1, 2, 3, 4, 5, 6)].sort(() => Math.random() - 0.5)但是,实际上这种方法并不能真正的随机打乱数组,每个元素有很大几率还在它原来的位置附近出现。具体原因...原创 2019-03-12 17:58:59 · 1592 阅读 · 0 评论 -
js获取url参数
function getQueryVariable(variable) { var query = window.location.search.substring(1); var params= query.split("&"); for (var i=0;i<params.length;i++) { var param= params[i].split("="); ...原创 2019-04-02 11:18:43 · 240 阅读 · 0 评论 -
ES6中Class的继承 学习笔记
class ColorPoint extends Point { constructor(x, y, color) { super(x, y); // 调用父类的constructor(x, y) this.color = color; } toString() { return this.color + ' ' + super.toString(); // ...原创 2018-07-19 16:44:17 · 221 阅读 · 0 评论 -
使用正则从字符串中截取出img标签、以及对应src地址
1.从字符串中匹配出所有的img标签var str = "this is test string <img src=\"http:baidu.com/test.jpg\" width='50' > 1 and the end <img src=\"所有地址也能匹配.jpg\" /> 33! <img src=\"/uploads/attached/image/20...原创 2018-07-13 16:21:18 · 24035 阅读 · 3 评论 -
ES6 Map学习笔记
MapJavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。const data = {};const element = document.getElementById('myDiv');data[element] = 'metadata';data['[object HTMLDivE...原创 2018-07-19 15:05:23 · 175 阅读 · 0 评论 -
js 计算精度问题,及解决办法
js计算精度问题(浮点数误差,大数计算出错)JavaScript 浮点数运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪的结果,如:0.1+0.2 //0.300000000000000041-0.9 //0.099999999999999989007199254740993-9007199254740992 //0Math.pow(2原创 2018-01-29 15:52:25 · 39104 阅读 · 5 评论 -
详解document.getElementById 和 document.querySelector的区别
作者:简生 链接:https://www.zhihu.com/question/24702250/answer/28695133 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1. W3C 标准querySelectorAll 属于 W3C 中的 Selectors API 规范 [1]。而 getElementsBy 系列则属于 W3C 的 DOM转载 2018-01-29 11:25:20 · 14674 阅读 · 3 评论 -
for in,for of,for each in ,forEach使用笔记
1. for each in该方法已经不被推荐使用,所以,尽量避免使用该方法。同时,该方法只能用于objecy,不能用于数组。var sum = 0;var obj = {prop1: 5, prop2: 13, prop3: 8};for each (var item in obj) { sum += item;}console.log(sum); //262原创 2018-01-31 18:15:44 · 1580 阅读 · 0 评论 -
JS 中的 bind() 方法使用笔记
bind()方法bind() 函数会创建一个新函数(称为绑定函数),当新函数被调用时 this 值绑定到 bind() 的第一个参数。绑定函数被调用时,bind() 也接受预设的参数提供给原函数。创建绑定函数bind() 最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的 this 值。例如this.x = 9; var module = { x: 81,原创 2018-01-23 20:12:58 · 330 阅读 · 0 评论 -
JS获取某年某月的总天数
话不多说,直接上代码function getDaysInOneMonth(year, month){ month = parseInt(month, 10); var day= new Date(year, month, 0); return day.getDate(); }getDaysInOneMonth(2017,2) //28原创 2017-09-18 16:42:39 · 2331 阅读 · 0 评论 -
Js文件中文乱码问题
之前在用eclipse编写jsp页面时出现了js文件乱码的问题,特此总结一下,以防以后忘记。①.js 文件中文显示乱码Javascript文件XX.js编辑保存时有一种编码方案(如GBK),当打开文件的时候所用的编码(如UTF-8)和保存时的编码方案不一致时,则会出现中文显示乱码。 解决方案: (1)用编辑器打开浏览的时候,选择和原文件编码(如GBK)一致的编码方式查看,则不会出现乱码; (2原创 2017-08-11 15:56:54 · 4901 阅读 · 0 评论 -
验证数字为非负数,并强制保留两位小数。(不进行四舍五入)
直接上代码:/*检测数字是非负数,并且强制保留两位小数:传进来的name是选择器*/function changeTwoDecimal_f(x,name) {//console.log(name);if(!Number(x)){ layer.open({type:4,skin: '',closeBtn:0,time:5000,shade:0,fixed:true,scrollb原创 2017-05-25 16:16:20 · 917 阅读 · 0 评论 -
一道淘宝的面试题,记录分享下~
题目// 本代码在浏览器中执行,在此填充代码使下面的打印能够成功执行(//后填充代码)//////if (a === 'animal' && a === 'dog' && a === 'husky') { //三个全等,不知道为什么csdn中显示有误 console.log('Haha, husky');}答案一window.a...原创 2018-02-08 18:25:22 · 361 阅读 · 0 评论 -
modal弹框中的Bootstrap datePicker 隐藏时,触发了modal的hidden.bs.modal事件
今天写项目时,发现datepicker选择时间后,隐藏便触发了modal的hidden事件,仔细看了下,发现时datepicker的hide事件冒泡到了modal上面。发现了原因,便很容易解决了,阻止datepicker的hide事件冒泡便是了。 $('.date-picker').on('hide', function(event) { event.stopProp...原创 2018-03-08 18:17:48 · 3469 阅读 · 0 评论 -
ES6 Set学习笔记
SetSet 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。const set = new Set([1, 2, 3, 4, 4]); // 可用来实现数组去重set.size // 4 [...set] // [1,2,3,4]向 Set 加入值的时候,不会发生类型转换,Set 内部判断两个值是否不同,使用的算法叫做“Same-v...原创 2018-07-19 11:27:18 · 153 阅读 · 0 评论 -
数组对象根据某个key相同合并分组
var arr = [ {"id":"1001","name":"值1","value":"111"}, {"id":"1001","name":"值1","value":"11111"}, {"id":"1002&q转载 2018-07-19 10:09:14 · 16423 阅读 · 6 评论 -
for in与Object.keys与Object.getOwnPropertyNames的区别
var parent = Object.create(Object.prototype, { a: { value: 123, writable: true, enumerable: true, configurable: true }});// parent继承自Object.protot...原创 2018-07-12 14:57:53 · 370 阅读 · 0 评论 -
ES5实现Array.from(类数组转为数组)
直接上代码var a={length:2,0:'aaa',1:'bbb'}; Array.prototype.slice.call(a);// ["aaa", "bbb"] var a={length:2}; Array.prototype.slice.call(a);// [undefined, undefined]原创 2018-06-23 10:59:27 · 3456 阅读 · 0 评论 -
js 根据日期判断周几
直接上代码var weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; var myDate = new Date(Date.parse("2018/5/19")); console.log(weekDay[myDate.getDay()]); // 星期六...原创 2018-05-21 17:42:59 · 15818 阅读 · 0 评论 -
for in 循环不要用来遍历数组!
1.for in循环会遍历到数组中的原型链中的属性 只有具有 Enumerable (可枚举)属性的属性才能被 for … in 遍历。例如constructor 便是最常见的不可枚举属性之一。let arr=[1,2,3]Array.prototype.xxx=1231235for(let i in arr){ console.log(arr[i])}// 1// 2/...原创 2018-04-08 15:47:49 · 3974 阅读 · 0 评论 -
使用serializeObject()将form表单中的数据序列化成对象
在ajax中有 serializeArray()方法 可以将form表单中的数据序列化成如下的格式[ { name: "a", value: "1" }, { name: "b", value: "2" }, { name: "c", ...转载 2018-03-08 18:43:44 · 18012 阅读 · 0 评论 -
JS 中的 && 和 || 的妙用
今天看到一道题var x=0,y=1,z=6console.log(x&&y); //0console.log(y&&z) //6开始以为返回false,true,后来才发现对于 a&&b,如果a为true,则返回b;如果a为false,则返回a;对于a||b,如果a为true,则返回a;如果为false,则返回b;...原创 2018-03-08 18:37:48 · 1331 阅读 · 0 评论 -
js时间转换
代码如下:Date.prototype.toLocaleDateString = function() { return (this.getFullYear() + "-" + (this.getMonth() + 1) + "-" + this.getDate() + " " + this.getHours() + ":" + this.getMinutes() + ":" + this.原创 2017-05-22 14:50:10 · 411 阅读 · 0 评论