在使用 js 判断数组中是否存储该元素,我们会用到 indexOf 函数.而在 IE 上 indexOf 函数 无法兼容,通过以下方法解决,仅以文章记录一下 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (elt /*, from*/) { var len = this.length >>> 0; var from = Number(arguments[1]) || 0; from = (from…
关于变量提升,以前在一些教程和书籍上都听到过,平时开发中也知道有这个规律,但是今天突然在一个公开课中听到时,第一反应时一脸懵逼,然后一百度,瞬间觉得好熟悉啊,差点被这个概念给唬住了,不信我给你看个栗子,你也会恍然大悟的: (function(){ console.log(v); var v = 'I love you'; console.log(v); })() // undefined I love you 这就是一个典型的变量提升的例子了,规则是怎样的呢,我的理解是在一个作用…
判定this new绑定:新建对象; var bar = new foo(); 明确绑定(call.apply,bind):指定对象; var bar = foo.call(obj) 隐含绑定:环境对象(或容器对象); var bar = obj2.foo(); 默认绑定:strict模式是undefined,否则是全局对象(浏览器是windows,node环境是global) var bar = foo(); 被忽略的 this 如果你传递 null 或 undefined 作为 call.a…
https://stackoverflow.com/questions/22277447/indexof-within-switch switch (true) { case (msgRes.indexOf("hi") !=-1): botResponse.push("HELLO. "); break; case (msgRes.indexOf("how are you") !=-1): botResponse.push("I AM F…
//移除空白节点,空白节点的类型是3 function removeWhiteNode(node) { for (var i = 0; i < node.childNodes.length; i++) { if (node.childNodes[i].nodeType === 3 && /^\s+$/.test(node.childNodes[i].nodeValue)) { node.childNodes[i].parentNode.…