JavaScript中常用的方法汇总

JavaScript中常用的方法汇总

1. 获取指定Cookie的方法

代码语言:javascript代码运行次数:0运行复制function getCookie(cookieName){

var cookieValue="";

if (document.cookie && document.cookie != '') {

var cookies = document.cookie.split(';');

for (var i = 0; i < cookies.length; i++) {

var cookie = cookies[i];

var arr= cookie.split('=');

if (arr[0].replace(" ",'') == cookieName) {

cookieValue = arr[1];

break;

}

};

return cookieValue;

};

}2. 获取当前元素字符串的方法

代码语言:javascript代码运行次数:0运行复制function nodeToString (node) {

var tempNode = document.createElement("div");

tempNode.appendChild(node.cloneNode(true));

var str = tempNode.innerHTML;

tempNode = node = null;

return str;

} 3. 获取URL指定参数的方法

代码语言:javascript代码运行次数:0运行复制function getQueryParameter(parameter) {

var query = window.location.search.substring(1);

var arr = query.split("&");

for (var i = 0; i < arr.length; i++) {

var obj = arr[i].split("=");

if (obj[0] == parameter) {

return obj[1];

}

}

return (false);

}4. 将对象转为URL参数

代码语言:javascript代码运行次数:0运行复制function urlEncode(param, key, encode) {

if (param == null) {

return ''

};

var paramStr = '';

var t = typeof (param);

if (t == 'string' || t == 'number' || t == 'boolean') {

paramStr += '&' + key + '=' + ((encode == null || encode) ? encodeURIComponent(param) : param);

} else {

for (var i in param) {

var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i)

paramStr += urlEncode(param[i], k, encode)

}

}

return paramStr;

}5. 绑定事件的方法,适用于各个浏览器

代码语言:javascript代码运行次数:0运行复制function addBind(obj, eventType, callBack) {

if (obj.addEventListener) {

obj.addEventListener(eventType, callBack, false);

}else if (window.attachEvent) {

obj.attachEvent('on' + eventType, callBack);

}else {

obj['on' + eventType] = callBack;

}

};

addBind(document, 'click', bodyClick);6. 移除事件的方法,适用于各个浏览器

代码语言:javascript代码运行次数:0运行复制function moveBind (objId, eventType, callBack) {

var obj = document.getElementById(objId);

if (obj.removeEventListener) {

obj.removeEventListener(eventType, callBack, false);

} else if (window.detachEvent) {

obj.detachEvent('on' + eventType, callBack);

} else {

obj['on' + eventType] = null;

}

} 7. 清空加载到顶部的JS引用

代码语言:javascript代码运行次数:0运行复制function clearHeadJs (src) {

var js = document.getElementsByTagName('head')[0].children;

var obj = null;

for (var i = 0; i < js.length; i++) {

if (js[i].tagName.toLowerCase() == "SCRIPT" && js[i].attributes['src'].value.indexOf(src) > 0) {

obj = js[i];

break;

}

}

document.getElementsByTagName('head')[0].removeChild(obj);

}; 8. 防抖函数

原理: 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

适用场景:

1. 按钮提交场景:防止多次提交按钮,只执行最后提交的一次;

2. 服务端验证场景:表单验证需要服务端配合,只执行一段连续的输入事件的最后一次;

3. 搜索联想词场景;

代码:

代码语言:javascript代码运行次数:0运行复制const debounce = (fn,delay)=>{

let timer = null;

return (...args)=>{

clearTimeout(timer);

timer = setTimeout(()=>{

fn.apply(this,args)

},delay)

}

}示例:

代码语言:javascript代码运行次数:0运行复制

防抖函数

9. 节流函数

原理: 规定在一单位时间内。只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。

适用场景:

1. 拖拽场景:固定时间只执行一次,防止超高频次触发位置变动;

2. 缩放场景:监控浏览器resize;

3. 动画场景:避免短时间内多次触发动画引起的性能问题。

代码:

代码语言:javascript代码运行次数:0运行复制const throttle = (fn, delay = 500) => {

let flag = true;

return (...args) => {

if (!flag) return;

flag = false;

setTimeout(() => {

fn.apply(this, args)

}, delay);

}

}实例:

代码语言:javascript代码运行次数:0运行复制

节流函数

💡 相关推荐

苹果怎么安装安卓软件
健康365人工客服电话

苹果怎么安装安卓软件

📅 08-02 👀 4470
大话西游2:首次觉醒就开出大奖!你猜这套忽如一夜能卖多少?
亲情号码有什么利弊?
365bet开户平台

亲情号码有什么利弊?

📅 08-06 👀 8107