js常用函数——js 判断变量、js 获取地址栏参数 、js 对象数组去重、js setTimeout

**JavaScript是一个单线程、非阻塞、异步、解释性语言。**

js常用函数

parseInt

// 可直接用parseInt取出元素的样式数值(我以前都是去掉px再parseInt)
// 返回int数值
parseInt(element.style.height);

js 判断变量是否正常、能用

var test1;
if(test1 == null || test1 == undefined || test1 == '' || test1 == 0 ){
	console.log('test1出错,无法继续执行') 
} else{
	console.log('test1正常,可继续执行代码')
}

上面的可以简化成如下代码 ↓

if(test1){
	console.log('test1正常,可继续执行代码');
	// 继续执行的代码
	var test2 = test1 + ',你好';
}

// 或者 
if(!test1){
	console.log('test1不正常,退出本函数,不往下执行')
	return;
}
// 继续执行的代码
var test2 = test1 + ',你好';

获取地址栏参数

/**
 * 获取地址栏参数
 * @param name
 * @returns {*}
 */
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return decodeURIComponent(r[2]);
    }
    return null;
}

对象数组去重

/**
 * 对象数组去重
 * @param arr
 * @param key 唯一标识符
 * @returns {*}
 */
function uniqueObjectArr(arr, key) {
    // 转成一维数组
    var onlyKeyList = arr.map(function (r) {
        return r[key];
    });
    // 去重
    return arr.filter(function (r, rI) {
        return onlyKeyList.indexOf(r[key], 0) === rI;
    });
}

js setTimeout

setTimeout能够让某个函数,在经过一段预定时间后才开始执行,比如,等HTML的input框加载好了再执行checked操作。

// 用setTimeout实现动画
// setTimeout(函数, 毫秒)
var btnDom = document.getElementsByClassName('layui-inline site-down')[0];
btnDom.style.marginLeft = '0px';
var toLeft = true;
function moveBtn(){
	var currMrLeft = parseInt(btnDom.style.marginLeft);
	if(toLeft){
		if(currMrLeft > 1200){
			currMrLeft --; 
			toLeft = false;
		}else if(currMrLeft >= 0){
			currMrLeft ++; 
		}else{
			currMrLeft ++; 
		}
	}else{
		currMrLeft --; 
		if(currMrLeft < -1200){
			toLeft = true;
		}
	}
	console.log(currMrLeft );
	btnDom.style.marginLeft = currMrLeft  + 'px';
	task1 = setTimeout("moveBtn()",2);
}
task1 = setTimeout("moveBtn()",2);
// 清除定时任务
clearTimeout(task1);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值