javaScript(jquery)笔记

1、Math.min.apply(null, [1, 2, 3]) 获取数组中最小的值,等同于Math.min(1, 2, 3)

2、值在数组中位置$.inArray(val,arr)

3、getURL方式传递中文时,需要编码(需要编码两次encodeURI,如果只一次,linux环境还是会乱码,不知道啥情况),服务器端解码。

编码方式:encodeURI(encodeURI(string))

解码方式:URLDecoder.decode(string, "UTF-8")

4、

var getUrlParam = function(name, href, noDecode) {

var re = new RegExp("(?:\\?|#|&)" + name + "=([^&]*)(?:$|&|#)", "i"),

m = re.exec(href);

var ret = m ? m[1] : "";

return ! noDecode ? decodeURIComponent(ret) : ret

};

var jump_from = getUrlParam("jump_from", location.href);

5、

var ua = navigator.userAgent;

var p;

if(ua.indexOf("Android")>-1){

p = "android";

}

else if(ua.indexOf("iPhone")>-1 || ua.indexOf("iPad")>-1 || ua.indexOf("iPod")>-1){

p = "ios";

}

else if(ua.indexOf("Windows Phone") > -1 || ua.indexOf("WPDesktop") > -1){

p = "winphone";

}

else {

p = "pc";

}

 6、

检测子字符串是否存在于字符串或者变量是否存在于数组你可能会这样做:

var someText = 'text';

if (someText.indexOf('ex') !== -1) {

}

// or

if (someText.indexOf('ex') >= 0) {

}

更好的方法:

var someText = 'text';

alert(someText.indexOf('ex'));

alert(~someText.indexOf('ex'));

alert(!~someText.indexOf('ex')); // someText NOT contains "ex" - false

alert(!!~someText.indexOf('ex')); // someText contains "ex" - true

位运算符~取反运算(-(num+1)),-1取反为0,其他值取反不为0,0标识为false,非0为true,可使用!!转化为boolean。

 

7、对数组洗牌(Fisher-Yates Shuffling算法

function shuffle(arr) {
    var i, 
        j,
        temp;
    for (i = arr.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i + 1));
        temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    return arr;    
};
var a = [1, 2, 3, 4, 5, 6, 7, 8];
var b = shuffle(a);
console.log(b);
// [2, 7, 8, 6, 5, 3, 1, 4]

8、对数组过滤并排序字符串列表

http://www.jstips.co/zh_cn/filtering-and-sorting-a-list-of-strings/

var filteredAndSortedKeywords = keywords
  .filter(function (keyword, index) {
      return keywords.lastIndexOf(keyword) === index;
    })
  .sort(function (a, b) {
      return a < b ? -1 : 1;
    });

9、

猜你喜欢

转载自zzzwp.iteye.com/blog/2297319