js
文章平均质量分 73
昔人'
觉今是而昨非
展开
-
优化分支语句:状态模式
各位写代码的时候,经常会出现条件判断吧,那么条件判断里面脸最熟的当属 if 了吧,这个东西在我们开始编码的时候,真的是隔一段时间不写,就浑身难受。??但是呢,if 这个东西,哪怕是再简单的判断,也会有隐含问题,而且在代码可读性上,条件判断的效果很不友好,当存在多重判断的时候,简直就是灾难。??所以为了解决条件判断的这些弊端,状态模式应运而生。状态模式??状态模式:当一个对象的内部状态发生改变时,会导致其行为的改变,这看起来像是改变了对象。??我们可以将不同的状态结果封装在状态对象内部,然后该状态对象返回一转载 2022-12-07 21:28:09 · 193 阅读 · 0 评论 -
多分支语句优化:策略模式
1、模式定义策略模式,把定义的一组算法封装起来,使其相互之间可以替换。封装的算法具有一定的独立性,不会随客户端变化而变化。2、策略模式 vs. 状态模式从结构上看,策略模式和状态模式很像,也是在内部封装一个对象,然后通过返回的接口对象来实现对内部对象的调用。不同的是,策略模式不需要管理状态,状态之间也没有依赖关系,策略之间可以相互替换,策略对象内部保存的是相互独立的算法。策略模式,就像一个活诸葛,对同一件事情的处理,总有多种可能的计谋,每次都可以随心所欲地选择一种计谋来达到不同种的结果。3、策略模式 举例:转载 2022-12-07 20:46:05 · 195 阅读 · 0 评论 -
不使用Math.random实现随机数
随机数生成转载 2022-06-20 14:50:05 · 388 阅读 · 0 评论 -
使用 TypeScript 常见困惑:interface 和 type 的区别是什么?
当我们使用 TypeScript 时,就会用到 和 ,平时感觉他们用法好像是一样的,没啥区别,都能很好的使用,所以也很少去真正的理解它们之间到底有啥区别。我们开发过经常或这么来定义类型:interface Point { x: number; y: number; }type Point = { x: number; y: number; };或者这样定义: 和 之间的差异不仅仅是次要语法声明。那么,今天我们就来看看这两家伙之间存在啥不可告人的秘密。TypeScript 有 、、 等基本类型。如果转载 2022-06-11 16:53:51 · 153 阅读 · 0 评论 -
window.location.search 为空?
1,什么是window.location?示例URL:http://b.a.com:88/index.php?name=kang&when=2016#first属性 含义 值protocol: 协议 “http:”hostname: 服务器的名字 “b.a.com”port: 端口 “88”pathname: URL中主机名后的部分 “/index.php”search: "?“后的部分,又称为查询字符串 “?name=kang&when=2016”hash: 返回”#"之后转载 2021-07-20 10:02:25 · 1006 阅读 · 0 评论 -
这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已
1、单行写一个评级组件"★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);定义一个变量rate是1到5的值,然后执行上面代码,看图才发现插件什么的都弱爆了2、如何装逼用代码骂别人SB(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]3、如何用代码优雅的证明自己NB这个牛逼了console.log(([][[]]+[])[+!![]]+([...转载 2020-12-06 21:12:00 · 1041 阅读 · 0 评论 -
js的function传值,字符串无法传值,
在html 中 onclick = xx(变量),若变量是Number类型,则无问题。若变量是 字符串类型的,则不可以。1 转译2 若用的是模版引擎渲染页面,上面方法就不行了,可以用 ";div class="gwDetailWdList" onclick="enterWTDetail( "%=data[i].id%>")">原创 2017-12-04 15:51:52 · 4731 阅读 · 0 评论 -
原生js 实现双向数据绑定
{{hello}} var obj = {}; Object.defineProperty(obj,'hello',{ set:function(val){ document.getElementById('bb').innerHTML = val; document.getElementById('转载 2017-12-22 19:42:21 · 1080 阅读 · 0 评论 -
js 将汉字转换为GB2312格式的编码
引入js: encodeToGb2312.js下载地址引用此js后,调用 encodeToGb2312(str)即可。eg<input id="q" type="text" /><input id="button" type="button" value="搜索" />给以上输入框绑定点击事件,在点击事件中:console.l原创 2018-05-07 13:19:35 · 7532 阅读 · 2 评论 -
使用swiper 轮播插件ajax 请求加载图片时,无法滑动
因为banner图是动态创建的,在插件开始初始化时,文档流中没用图片,故没有创建相应宽度,通过调整js加载顺序,问题还是没有解决。最后找到swiper插件 api 有属性是可以根据内容变动,自动初始化插件的,添加observer:true后问题解决!var mySwiper = new Swiper ('.swiper-container', { pagina转载 2017-11-27 15:23:40 · 1436 阅读 · 0 评论 -
js 去掉 <!--[if gte vml 1]><!--[endif]-->
前端在处理后台用富文本编辑后传来的数据时,带有:<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">原创 2018-01-11 15:47:45 · 2785 阅读 · 1 评论 -
js处理去掉富文本编辑的html,样式,只显示纯文字内容,以供列表页使用
var description = ' 1.国际保险经纪行业收入分析 2010年全球保险经纪行业市场规模为437.56亿美元,2015年增长至581.3亿美元。 2010-2015年国际保险经纪行业市场规模:亿美元 2.国际保险经纪行业并购分析 保险经纪公司并购较为频繁,2011年并购数量为351件,且呈现增长趋势。一股保险行业的并购风潮正席卷全球各个市场。如意大利投资集团Exor收购转载 2018-01-02 18:06:15 · 19317 阅读 · 2 评论 -
把后台传来的日期时间转化为几天前,几小时前,几分钟前在前端展现
function timeago(dateTimeStamp){ // dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。 var minute=1000*60; //把分,时,天,周,半个月,一个月用毫秒表示 var hour=minute*60转载 2017-11-24 13:36:20 · 4141 阅读 · 2 评论 -
jQuery序列化后的表单值转换成Json
$.fn.serializeObject = function(){ var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this.name].push) {转载 2017-12-03 22:06:29 · 469 阅读 · 0 评论 -
h5(H5)下载功能,用JS在浏览器中创建下载文件
转载:http://www.jb51.net/article/47723.htm但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打开-》另存为。如下面这个链接:复制代码代码如下:file.js用户点击这个链接的时候,浏览器会打开并显示链接指向的文件内容,显然,这并没有实现我们的需求。HTML5中给a标签增加了一个download属性,只转载 2017-12-20 11:51:21 · 23472 阅读 · 0 评论 -
js获取url传递参数,js获取url?号后面的参数window.location
Script language="javascript"> function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var st转载 2017-12-01 15:56:54 · 590 阅读 · 0 评论 -
多个页面共用一个js文件,但是有些页面没有某个元素,导致报错
if(document.getElementById("id")){ alert('对象存在'); ... ...}else{ alert('对象不存在'); ... ...} 参考传送门:https://segmentfault.com/q/1010000011586519原创 2017-11-06 11:24:22 · 3010 阅读 · 0 评论 -
h5移动端输入框随键盘上升
var xxxxxxxx = document.getElementById('#xxx');setInterval(function(){ xxxxxxxx.scrollIntoView(false);},200)Element.scrollIntoView()说是还在试验中的属性,mdn: https://developer.mozilla.org/zh-CN/docs/We原创 2017-11-20 10:39:59 · 6469 阅读 · 1 评论 -
rem布局
rem布局非常简单,首页你只需在页面引入这段原生JS代码就可以了(function (doc, win) {var docEl = doc.documentElement,resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',recalc = function () {var clientWi转载 2017-05-08 15:28:41 · 789 阅读 · 0 评论 -
移动端js判断手指滑动方向
var startx, starty; //获得角度 function getAngle(angx, angy) { return Math.atan2(angy, angx) * 180 / Math.PI; }; //根据起点终点返回方向 1向上 2向下 3向左 4向右 0未滑动 function getDirection(start转载 2017-09-18 17:03:37 · 2917 阅读 · 0 评论 -
了解D3.js-数据可视化
什么是D3.js?D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。JavaScript 文件的后缀名通常为 .js,故 D3 也常使用 D3.js 称呼。D3 提供了各种简单易用的函数,大大简化了 JavaScript转载 2017-07-26 12:48:47 · 1104 阅读 · 0 评论 -
HTMl5的sessionStorage和localStorage--灵活使用
转自:https://www.cnblogs.com/yuzhongwusan/archive/2011/12/19/2293347.htmlhtml5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束转载 2018-01-02 20:05:50 · 434 阅读 · 0 评论 -
H5、js、上传头像将图片转换成base64格式的:data:image/png;base64,iVBORw0
$("#img_upload_file").change(function() { varoFile = this.files[0]; console.log("oFile") console.log(oFile) varreader = newFileReader();原创 2017-12-28 16:36:54 · 5661 阅读 · 0 评论 -
散碎笔记-------
循环Object.keys -> 遍历自身可枚举的属性Object.getOwnPropertyNames -> 获取自身可枚举的属性obj.hasOwnProperty -> 是否自身属性for(let key in obj) -> 遍历自身及原型链上可枚举的属性ps: for(key value of obj) -> es6创造的对各种数据结构统...原创 2019-08-01 13:25:36 · 340 阅读 · 1 评论 -
vue配置多页应用项目模板
最近研究了一下 vue 多页面应用,参考着,也搞了个模板: 模板传送门至于 多页面 、 单页:原创 2019-03-25 20:19:28 · 566 阅读 · 0 评论 -
自定义文字云/词云图----基于echarts
demo连接 :自定义文字云/词云图效果如下:人形态小鸟形态参考 https://github.com/ecomfe/echarts-wordcloud,https://blog.csdn.net/shelbyandfxj/article/details/83243284...原创 2019-02-27 12:18:07 · 4458 阅读 · 6 评论 -
项目技术点,参考
1 自执行函数 :http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.htmlhttps://www.cnblogs.com/jiangshichao/p/7152855.html2 当js里有多个export怎么引入?https://segmentfault.com/q/10100000093725913 VUE -- 全局...原创 2018-09-09 23:54:14 · 427 阅读 · 0 评论 -
clipboard.js
平时浏览某些app或网站后,会自动复制吱口令,,实现demo如下js下载地址—密码a00r<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head&am原创 2018-06-25 01:02:19 · 892 阅读 · 2 评论 -
本地离线存储localforage
关于 HTMl5的sessionStorage和localStorage–灵活使用传送门localforage 用法类似转载自API1)setItem(key, value, successCallback):创建一个键,参数是键名、键值、回调函数,回调函数的参数是对应的键值。// Unlike localStorage, you can store non-strings.lo...转载 2018-06-16 16:32:20 · 2661 阅读 · 0 评论 -
40个JS轮子
1、将彻底屏蔽鼠标右键oncontextmenu=”window.event.returnValue=false”< table border oncontextmenu=return(false)>< td>no< /table> 可用于 Table2. 取消选取、防止复制< body onselectstart=”return fals...转载 2018-06-23 00:39:17 · 1108 阅读 · 0 评论 -
reduce
图列原创 2018-06-07 02:10:09 · 315 阅读 · 0 评论 -
vue购物车实例
测试代码1&lt;template&gt; &lt;div id="my"&gt; 全选&lt;input type="checkbox" v-model="checkAll" @change="change"&gt; &原创 2018-06-07 02:08:23 · 1225 阅读 · 0 评论 -
48 个 JavaScript 代码片段
Anagrams of string(带有重复项) 使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。const anagrams = str => {if (str.length <= 2) return str.length === 2 ? [s...转载 2018-06-05 10:40:11 · 239 阅读 · 0 评论 -
script标签的defer和async ---总结
async 与 defer 的差别async 和 defer 标注的 script 都不会暂停HTML解析就立刻被下载,两者都支持onload事件回调来解决需要该脚本来执行的初始化。两者的区别在于执行时的不同:async 脚本在script文件下载完成后会立即执行,并且其执行时间一定在 window的load事件触发之前。这意味着多个async脚本很可能不会按其在页面中的出现次序顺序执...转载 2018-05-07 19:23:37 · 931 阅读 · 0 评论 -
app回流---之深度连接linkedme
项目参考:http://m.vancl.com/深度链接(Deep Linking),可以从手机中任何地方将用户导入APP内的指定页面。LinkedME——国内首家企业级深度链接服务提供商,致力于帮助APP解决用户增长(拉新、拉活、留存、转化等)和流量变现等问题。LinkedME,企业级深度链接(Deep Linking)服务平台https://www.linkedme.cc/原创 2018-01-17 13:52:20 · 1062 阅读 · 0 评论 -
js对电话和姓名身份证等进行部分隐藏处理
将从后台获取到的数据进行字符串截取,为截取到的位数用*代替,形成这种思路之后我们可以写一个方法,如下function plusXing (str,frontLen,endLen) { var len = str.length-frontLen-endLen;var xing = '';for (var i=0;i<len;i++) {xing+='*';}return str.su转载 2017-12-29 16:53:05 · 5187 阅读 · 0 评论 -
js 生成两个整数之间不重复的n个随机整数
偶遇一个js面试题:编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。 如果愿意,请先暂停阅读文章,自己动手写一下这个函数。甲: var fn=function(n){ var arr=[]; n=n&&(+n)>0?(+n).toFixed(0):原创 2018-01-04 18:57:18 · 3624 阅读 · 0 评论 -
jquery.modal.js
/** * 模态框 Author:雨思 QQ:331406669 Date:2016-09-19 * $.modal.alert(msg,function(){}); * $.modal.confirm(msg,function(boolean){}); * $.modal.prompt(msg,function(false|value){}); * $.modal.msg(msg,fu转载 2017-05-06 10:40:57 · 4956 阅读 · 0 评论 -
jq 判断元素到窗口底部的距离
$(window).height();//是文档窗口高度$("div").offset().top//是标签距离顶部高度$(document).scrollTop();//是滚动条高度$("div").height();//是标签高度你要的高度+$("div").height()+[$("div").offset().top-$(document).scrollTop()]=$(window).h原创 2017-07-01 09:10:26 · 14622 阅读 · 0 评论 -
BOM 页面尺寸位置等知识点
var d1 = document.getElementById("d1"); // 1.style属性里面存储的属性值必须是行内的,在内联和外联样式规则里面的这些尺寸是不能被读取的,所以千万不要靠这些值来当做页面上给元素位置尺寸的依据 console.log([d1.style.width, d1.style.height, d1.style.borderWidth]); /原创 2017-03-03 21:21:59 · 490 阅读 · 0 评论