前端js奇淫技巧(三)

一.switch/case中的case条件,还可以这样写

function getCategory(age) {
    var category = "";
    switch (true) {
        case isNaN(age):
            category = "not an age";
            break;
        case (age >= 50):
            category = "Old";
            break;
        case (age <= 20):
            category = "Baby";
            break;
        default:
            category = "Young";
            break;
    }
    return category;
}
console.log(getCategory());    //not an age
console.log(getCategory(5));   //Baby
console.log(getCategory(30));  //Young
console.log(getCategory(55));  //Old

二.鼠标滚轮实现图片缩放方法

<!-- html代码  -->
<img src="/images/picture.jpg" onmousewheel="return zoomImg(this)">
//   js代码
function zoomImg(obj){
    var zoom = parseInt(obj.style.zoom, 10) || 100;
    zoom += event.wheelDelta/12;
    if(zoom>0)
    obj.style.zoom = zoom + '%';
    return false;
}

三.如何删除数组中指定的一项

Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
       if (this[i] == val) return i;
    }
    return -1;
};

//在 Array 原型中植入 remove 方法 remove 中调用 indexOf 判断 str 是否存在 arr 中,有则拿到 index
Array.prototype.remove = function(val) {
   var index = this.indexOf(val);
   if (index > -1) {
       this.splice(index, 1);
   }
};

var arr = ["232","sdfads","c","3"];
arr.remove('3');
console.log(arr);//["232","sdfads","c"]

四.判断是移动端还是pc端

function isPC(){
    var userAgentInfo = navigator.userAgent;
    var Agents = ['Android', 'iPhone',
        'SymbianOS', 'Windows Phone',
        'iPad', 'iPod'
    ];
    var flag = true;
    for (var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
}

五.可以直接用JavaScript获取HTML相同ID名称的元素

<!--  html代码   -->
<div id="contentDiv">我是内容</div>

//    js代码
console.log($(contentDiv).text());//我是内容

六.使用 1/0 代替无限大


七.使用.link方法

html = "<a href='"+url+"'>"+text+"</a>"; // before 
html = text.link(url); // after

猜你喜欢

转载自blog.csdn.net/diaoweixiao/article/details/80855477