Skip to the content.

面试总结

标签(空格分隔): 未分类


面向对象优点:

1.一切皆对象,相对于面向过程编程而言提高了代码的可重用性; 2.面向对象的三个重要特征:封装、继承、多态,提高了系统的灵活性与健壮性; 3.面向对象的中的属性和方法的可访问性提高了程序的安全性,数据调取的多样性.

面向对象大神总结

addCookie

function addCookie(name,value,expireHours){
    var exdate = new Date();    
    exdate.setTime(exdate.getTime() + expireHours * 60 * 60 * 1000);    
    document.cookie = name + "=" + escape(value) + ((expireHours == null) ? "" : ";expires=" + exdate.toUTCString());
}

getCookie

  1. 方法1:兼容性更好,如果多次通过document.cookie存入cookie,会默认中间添加空格。这个方法不会出现找不到的情况。
function getCookie(name){
    var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)){
        return (arr[2]);
    }else{
        return null;
    }      
}
  1. 方法2:如果cookie中间默认添加空格,还得继续处理
function getCookie(name){
     var strCookie=document.cookie;
     var arrCookie=strCookie.split(";");
     for(var i=0;i<arrCookie.length;i++){
           var arr=arrCookie[i].split("=");
           if(arr[0]==name){
                return arr[1];
           }
     }
     return null;
}

删除cookie

function deleteCookie(name){
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    document.cookie = name + "=v;expires=" + exp.toUTCString();
}

将url中的参数转为对象

  1. 方法1:利用正则
function getQueryObject(url) {
    url = url == null ? window.location.href : url;
    var search = url.substring(url.lastIndexOf("?") + 1);
    var obj = {};
    var reg = /([^?&=]+)=([^?&=]*)/g;
    search.replace(reg, function (rs, $1, $2) {
        var name = decodeURIComponent($1);
        var val = decodeURIComponent($2);               
        val = String(val);
        obj[name] = val;
        return rs;
    });
    return obj;
}
  1. 方法2:利用字符串+数组的方法
function getQueryStringArgs(url){
    url = url == null ? window.location.href : url;
    var qs = url.substring(url.lastIndexOf("?") + 1);
    var args = {};
    var items = qs.length > 0 ? qs.split('&') : [];
    var item = null;
    var name = null;
    var value = null;
    for(var i=0; i<items.length; i++){
        item = items[i].split("=");
        //用decodeURIComponent()分别解码name 和value(因为查询字符串应该是被编码过的)。
        name = decodeURIComponent(item[0]);
        value = decodeURIComponent(item[1]);
    
        if(name.length){
            args[name] = value;
        }
    }
    
    return args;
}

将一个数组转为千位符表示

parseInt('11123123231.3213').toLocaleString()
// "11,123,123,231"
console.info( str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(s){
  return s+','
}) )
var test = "1234567890";

function formatCash(str) {
  str = (str || 0).toString();
  if (str.length <= 1) {
    return str;
  }
  var arr = [];

  for (var i = 1, len = str.length; i < len; i++) {
    if (str.length % 3 && i === 1) {
      arr.push(str.substr(0, str.length % 3));
    }
    if (i % 3 === 0) {
      arr.push(str.substr(i - 2, 3));
    }
  }
  return arr.join(",");
}

console.log(formatCash(test));

var test = "1234567890";

function formatCash(str) {
  var arr = [];
  var counter = 0;
  str = (str || 0).toString().split("");
  for (var i = str.length - 1; i >= 0; i--) {
    counter++;
    arr.unshift(str[i]);
    if (!(counter % 3) && i !== 0) {
      arr.unshift(",");
    }
  }
  return arr.join("");
}