面试总结
标签(空格分隔): 未分类
面向对象优点:
1.一切皆对象,相对于面向过程编程而言提高了代码的可重用性; 2.面向对象的三个重要特征:封装、继承、多态,提高了系统的灵活性与健壮性; 3.面向对象的中的属性和方法的可访问性提高了程序的安全性,数据调取的多样性.
cookie
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:兼容性更好,如果多次通过document.cookie存入cookie,会默认中间添加空格。这个方法不会出现找不到的情况。
function getCookie(name){
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg)){
return (arr[2]);
}else{
return null;
}
}
- 方法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:利用正则
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;
}
- 方法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;
}
将一个数组转为千位符表示
- 方法1:利用方法
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("");
}