一个模块是能实现特定功能的文件,有了模块就可以方便的使用别人的代码,想要什么功能加载什么模块 common JS 模块化 开始于服务端的模块化, 同步定义的模块化,每个模块都有一个单独的作用域。 模块输出 const xxx = require(xxx) // 第三方模块: 参数为模块名(包名) // 自定义模块 参数为路径 模块引入 // 方式一…
实现一 : JSON序列化与反序列化 var a = { b:1, c:[1,2,3], d:{c1:'cccc1',c2:'cccc2'} } var str = JSON.parse(JSON.string(a)) 缺点: 反序列化深拷贝不支持函数不支持undefined不支持引用不支持Date不支持正则表达式不支持symbol 实例 …
兼容版本 var slice = Array.prototype.slice; function bind(asThis){ var args = slice.call(arguments,1); var fn = this; return function(){ var agrs2 = slice.call(arguments,0); retur…
函数VS方法的区别 函数如果子程序有返回值,就一个函数(js的所有函数都有返回值);如果函数里面没写return,js会自动加上return.什么是子程序一个或多个语句组成完成特定功能且相对独立的称为子程序方法简单来说放在类或者对象中调用的函数,成为方法 (方法是比较特殊的函数) /**函数**/ function fun1(num){ conso…
promise的APIpromise的使用场景async/await promise的API 常规用法 let text = new Promise((resolve,reject)=>{ resolve("成功时返回") reject("失败时…
防抖函数 当持续触发事件 一定时间内没有在触发事件 时间处理函数才会执行一次;如果设定的时间到来之前 有一次触发了事件 就重新开始延时。 // 利用闭包 function deounce(fun,delay){ let timer return function(args){ clearInterval(timer) timer = setTime…
window.addEventListener("scroll",function(){ console.log(document.documentElement.scrollTop); console.log(document.docucmentElement.scrollHeight); console.log(document.documen…
//转义 /* http%3A%2F%2Fwww.baicu.com */ encodeURLComponent("http://www.baidu.com") //逆转义 /* http://www.baidu.com */ decodeURLComponent("http%3A%2F%2Fwww.baicu.com")
function getQueryStringArgs(){ //取得查询字符串并去掉开头的问号 var qs = (location.search.length > 0 ? location.search.substring(1) : ""), //保存数据的对象 args = {}, //取得每一项 items = qs.length ?…
不兼容IE function inspectPlugin(name){ name = name.toLowerCase(); for(var i=0;i<navigator.plugins.length;i++){ if(navigator.plugins[i].name.toLowerCase().indexOf(name) >…