;

简介 铁路图(railroad diagram),又叫语法图(syntax diagrams),是一种表示形式语法的方式,是巴科斯范式和扩展巴科斯范式的图形化表示。 基本规则 1.从左边界开始,沿着轨道到右边界。 2.沿途,你在圆框中遇到的是字面量,在方块中遇到的是规则或描述。 3.任何沿着轨道能走通的序列都是合法的。 4.任何不能沿着轨道走通的序列都是非法的。 5.末端只有一个竖条的铁路图,表示允许在任意一对符号中插入空白。而在末端有两个竖条的铁路图则不允许。 示例 以javascript为例,声明变量的语法。 则语法如下: 1、空。 2、从name和=之间绕行。 var name; 3、中间横向语句。 var name = expression; 4、在expression和;之间循环。 var name, name,…,name; var name = expression, name = expression,…, name = expression; 5、在分号之后循环。 var name = expression; var name = expression; … 注:圆角向内表示循环,向外则不循环。或者将左下弧理解为出口,右下弧理解为入口。 来源:https://blog.csdn.net/u013961139/ar…

铁路图 2018年4月2日
;

示例数据 const animals = [ { "name": "cat", "size": "small", "weight": 5 }, { "name": "dog", "size": "small", "weight": 10 }, { "name": "lion", "size": "medium", "weight": 150 }, { "name": "elephant", "size": "big", "weight": 5000 } ] map() 定义和用法: map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素。 语法: array.map(function(currentValue,index,arr), thisValue) 示例:获取所有动物的n…

map(),filter(),reduce(),foreach()比较 2018年3月3日
;

var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object.assign(o1, o2, o3);

Javascript 对象合并 2018年2月9日
;

bxslider轮播插件 pc端正常,但是切换到移动端后,每次轮播切换时候在控制台会有此提示(控制台报错,但不影响功能) Uncaught DOMException: Failed to execute ‘releasePointerCapture’ on ‘Element’: InvalidPointerId 查看官网demo此报错同样存在 1.查找代码 touchPoints = (typeof orig.changedTouches !== ‘undefined’) ? orig.changedTouches : [orig]; 2.在后面添加如下代码 var chromePointerEvents = typeof PointerEvent === ‘function’; if (chromePointerEvents) { if (orig.pointerId === undefined) { return; } }

Failed to execute releasePointerCapture on Element: InvalidPointerId 2018年1月5日

步骤1. 手机通过USB连接到电脑 步骤2. 手机设置 开发者选项->USB调试 步骤3. 保证电脑可以访问google.com 步骤4. 进入电脑端调试页面 chrome://inspect/#devices 步骤5. 手机用chrome打开需要调试的网站 步骤6. 电脑端会显示手机上打开的所有页面,点击inspect即可 备注: 如果页面一直显示加载白屏尝试以下操作 chrome://appcache-internals/# 清除一下这里的缓存

chrome远程调试 2017年12月31日
;

(function() { var h = {} , mt = {} , c = { id: "9ee4bb9d5bb1d41420031974fceab60f", dm: ["willless.com"], js: "tongji.baidu.com/hm-web/js/", etrk: [], icon: ”, ctrk: false, align: -1, nv: -1, vdur: 1800000, age: 31536000000, rec: 0, rp: [], trust: 0, vcard: 0, qiao: 0, lxb: 0, conv: 0, med: 0, cvcc: ”, cvcf: [], apps: ” }; var q = void 0 , r = !0 , t = null , u = !1; mt.cookie = {}; mt.cookie.set = function(a, b, d) { var f; d.H && (f = new Date, f.setTime(f.getTime() + d.H)); document.cookie = a + "=" + b + (d.domain ? &quo…

百度统计,源代码解读 2017年12月11日
;

//形如这种,应该叫做unix时间戳, 1363737600000 //形如这种,我们称之为ISO-8601格式的时间 2017-09-28T16:00:00Z 一般跨时区的应用,数据库中都是存储这两种格式化的时间,前端根据自己所在的时区展示对用的本地时间 把unix时间戳格式化为本地时间,推荐使用moment.js moment.unix(1318781876).format(‘YYYY-MM-DD’) 把一个ISO时间根据时区转换,推荐使用使用moment.js //demo var date = ‘2017-09-28T16:00:00Z’; var timezone = ‘Asia/Shanghai’; moment(date).tz(timezone).format(‘YYYY-MM-DD hh:mm:ss’); 如果是在微信小程序中使用,你需要先去moment官方下载moment-timezone-with-data.js这个文件到你的小程序应用中 const moment = require("./moment-timezone-with-data"); var date = ‘2017-09-28T16:00:00Z’; var timezone = ‘"Asia/Shanghai’; momen…

跨时区时间转换 2017年11月28日
;

1.一维数组排序 timeList=[‘2017-10-05′,’2017-10-01′,’2017-10-03′,’2017-10-02′,’2017-10-09′]; timeList.sort(); console.log(timeList); 2.对象数组的排序 sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同 var arr = [ {name:’zopp’,age:0}, {name:’gpp’,age:18}, {name:’yjj’,age:8} ]; function compare(property){ return function(a,b){ var value1 = a[property]; var value2 = b[property]; return value1 – value2; } } console.log(arr.sort(compare(‘age’))) 当对日期排序就需要处理一下 var arr = [ {name:’zopp’,age:’2017-11-5′}, {name:’gpp’,age:’2017-11-9′}, {name:’yjj’,age:’2017-11-1′} ]; function compare(property)…

js中sort方法根据数组中对象的某一个属性值进行排序 2017年11月20日
;

toUTCString() toISOString() http://www.jianshu.com/p/415f8c276388 https://segmentfault.com/a/1190000003710954?mType=Group https://segmentfault.com/a/1190000007581722 http://www.w3school.com.cn/jsref/jsref_obj_date.asp

时间相关函数 2017年11月1日
;

array.map(callback, [thisArg]) map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。如果 thisArg 参数有值,则每次 callback 函数被调用的时候,this 都会指向 thisArg 参数上的这个对象。如果省略了 thisArg 参数,或者赋值为 null 或 undefined,则 this 指向全局对象 。 var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); /* roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]*/

map函数 2017年10月29日
;

JSON.parse() 方法用于将一个 JSON 字符串转换为对象。 语法:JSON.parse(text[, reviver]) 参数说明: text:必需, 一个有效的 JSON 字符串。 reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。 返回值: 返回给定 JSON 字符串转换后的对象。 JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。 语法:JSON.stringify(value[, replacer[, space]]) 参数说明: value: 必需, 一个有效的 JSON 字符串。 replacer: 可选。用于转换结果的函数或数组。 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:””。 如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。 space: 可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格…

JSON.parse与JSON.stringify及toString 2017年10月27日
;

// Converts canvas to an image function convertCanvasToImage(canvas) { var image = new Image(); image.src = canvas.toDataURL("image/png"); return image; } // Converts image to canvas; returns new canvas element function convertImageToCanvas(image) { var canvas = document.createElement("canvas"); canvas.width = image.width; canvas.height = image.height; canvas.getContext("2d").drawImage(image, 0, 0); return canvas; }

canvas与image互相转换 2017年10月20日
;

步骤一: 地址栏输入,chrome://version,“个人资料路径”即为本地路径 步骤二: 复制地址在文件夹内打开,进入到“Extensions”目录 如何知道插件对应的目录 步骤三: 地址栏输入,chrome://extensions/ 此处ID即为对应的目录名

如何查看chrome插件源文件 2017年7月16日
;

1.对象属性遍历 var pricelist={1: "35", 2: "70", 3: "105", 4: "140", 5: "175", 6: "210", 7: "245", 8: "280", 9: "315", 10: "350"}; for (var key in pricelist) { console.log(key+"="+pricelist[key]) } for (attr in window) { console.log(attr); } //枚举window对象的所有属性 2.数组遍历 方式一: var pricelist = [35,70,105,140,175,210,245,280,315,350]; for (var key in pricelist) { console.log(pricelist[key]) } 方式二: var pricelist = [35,70,105,140,175,210,245,280,315,350]; for (var i=0;i<pricelist…

对象及数组属性遍历 2017年5月8日
;

基本结构 <link href="video-js.css" rel="stylesheet" type="text/css"/> <script src="videojs-ie8.min.js"></script> <script src="video.js"></script> <video id="my-video" class="video-js vjs-default-skin my_video_1-dimensions vjs-fluid vjs-controls-enabled vjs-workinghover vjs-has-started vjs-paused vjs-user-inactive vjs-big-play-centered" controls preload="auto" data-setup="{}"> <source src="url.mp4" type=’video/mp4′> </video> 切换源地址 va…

videojs视频地址切换 2017年5月6日
;

代码: .imgview_inner{height: 500px; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-align: center; -webkit-align-items: center; align-items: center; -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center; } <div class="imgview_inner"><img src="http://gameweb-img.qq.com/gad/20170317/phphgAjtN.1489739479.jpg"></div>

flex实现图片垂直居中 2017年4月25日
;

格式: console.log("%c要显示的字符串","css样式"); 示例代码 console.clear(); console.log("%c ", "border-top: 4px dotted #dadada; font-size: 42px;"); console.log("%chttp://willless.com", "font-size: 42px; color: #fff; text-shadow: 0 1px 0 #eaeaea, 0 2px 0 #dadada, 0 3px 0 #bababa, 0 4px 0 #b0b0b0, 0 5px 0 #a0a0a0, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.2), 0 20px 20px rgba(0,0,0,.15);"); console.log("%c ", &qu…

对console.log的信息添加样式 2017年4月24日
;

前提: 1.当元素设置box-sizing:border-box; 2.同时设置了上下padding 问题: height等于line-height 就无法实现垂直居中 修正: line-height=height-padding*2

box-sizing 影响垂直居中 2017年4月14日
;

slice() 把匹配元素集合缩减为指定的指数范围的子集。 <ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul> $(‘li’).slice(2).css(‘background-color’, ‘red’);选中的是后面三个li元素。

jquery slice用法 2017年3月29日
;

问题描述: 1,通过微信朋友圈链接点击进入网站,导航按钮点击失效。 2,跳转到其它页面再点击导航按钮功能却正常。 3,浏览器及微信web开发者工具内问题无法重现,一切功能正常。 4,css各种修改,位置调整及元素标签修改,问题依旧。 5,类似结构其它网站无此bug。 权宜之计: 通过把相关的js写到头部页面内,问题消失。 相关: 其它项目中也遇到在微信打开后一些奇怪的边框,通过调整z-index解决

微信朋友圈链接,导航按钮点击失效 2017年3月17日
;

html <a class="label label-success" onclick="fastform({$row[‘id’]},$(this))">提交</a> 函数内 function fastform(id,$this) { //对象已经传递进来 } How to use $(this) in functions?

function内传递$(this) 2017年3月6日
;

菜单弹出时addClass(‘understatic’). body.understatic { overflow: hidden; } 菜单消失时候removeClass(‘understatic’).

解决–弹出层滚动带动下层整个内容页滚动 2017年2月27日
;

方法一: $("div.test").css("cssText", "width:650px !important;"); 方法二: $(‘#elem’).attr(‘style’, ‘width: 100px !important’); 方法三: 新建类,通过addClass覆盖

jquery,css,包含important 2017年2月27日
;

无效代码: $(‘h1’).click(function(){ $(‘a’).trigger(‘click’); }); 方法一:需要定位到a标签内的元素 $(‘h1’).click(function(){ $(‘a span’).trigger(‘click’); }); 方法二:jquery转化为js对象 $(‘h2’).click(function(){ $(‘a’)[0].click(); });

trigger触发a跳转 2017年2月27日