简介:不少概念不清或忘记,从新构建本身的知识体系。天天问本身1~多个问题。我是菜鸟 成为大神之路!
html
继续第7天的内容git
更多的内容以后在作学习
var wsCache = new WebStorageCache();
// 缓存字符串'wqteam' 到 'username' 中, 超时时间100秒
wsCache.set('username', 'wqteam', {exp : 100});
// 超时截止日期,可用使用Date类型
var nextYear = new Date();
nextYear.setFullYear(nextYear.getFullYear() + 1);
wsCache.set('username', 'wqteam', {exp : nextYear});
// 获取缓存中 'username' 的值
wsCache.get('username');
// 缓存简单js对象,默认使用序列化方法为JSON.stringify。能够经过初始化wsCache的时候配置serializer.serialize
wsCache.set('user', { name: 'Wu', organization: 'wqteam'});
// 读取缓存中的简单js对象 - 默认使用反序列化方法为JSON.parse。能够经过初始化wsCache的时候配置serializer.deserialize
var user = wsCache.get('user');
alert(user.name + ' belongs to ' + user.organization);
// 删除缓存中 'username'
wsCache.delete('username');
// 手工删除全部超时CacheItem,
wsCache.deleteAllExpires();
// 清除客户端中全部缓存
wsCache.clear();
// 为已存在的(未超时的)缓存值设置新的超时时间。
wsCache.touch('username', 1);
// 若是缓存中没有key为username2的缓存,则添加username2。反之什么都不作
wsCache.add('username2', 'wqteam', {exp : 1});
// 若是缓存中有key为username的缓存,则替换为新值。反之什么都不作
wsCache.replace('username', 'new wqteam', {exp : 1});
// 检查当前选择做为缓存的storage是否被用户浏览器支持。
//若是不支持调用WebStorageCache API提供的方法将什么都不作。
wsCache.isSupported();
复制代码
基本的数据类型
有:undefined,boolean,number,string,null
。 基本类型存放在栈区,访问是按值访问的,就是说你能够操做保存在变量中的实际的值。github
var str = "12";
var str1 = "13";
str1 = str;
str1 = "24";
console.log(str + "++" + str1);//12++24
复制代码
引用类型指的是对象。能够拥有属性和方法,而且咱们能够修改其属性和方法。引用对象存放的方式是:在栈中存放对象变量标示名称和该对象在堆中的存放地址,在堆中存放数据。
对象使用的是引用赋值。当咱们把一个对象赋值给一个新的变量时,赋的实际上是该对象的在堆中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,不管哪一个对象发生改变,其实都是改变的存储空间的内容,所以,两个对象是联动的。web
var arr = [1,2,3];
var arr1 = arr;
console.log(arr);//[1, 2, 3]
console.log(arr1);//[1, 2, 3]
arr.pop();
console.log(arr);//[1, 2]
console.log(arr1);//[1, 2]
复制代码
JavaScript的函数参数传递为值传递数据库
'当传入的是 基本类型的参数时:就是复制了分内容给i而已,i与age之间没有关系。'
function setAge(i) {
console.log(i);//24
i = 18;
console.log(i);//18,i的改变不会影响外面的age
};
var age = 24;
setAge(age);
console.log(age);//24
复制代码
'当传入的参数为引用类型时:'
function setName(obj) {
obj.name = 'haha';
};
var obj2 = new Object();
setName(obj2);
console.log(obj2.name); // haha
'这看起来很像是传递的是引用,由于obj.name受到改变了,但其实不是,其实仍是值,由于obj2自己的值就是新对象的地址,因此传进去的就是这个地址。'
复制代码
'阿里2014年的笔试题'
var a = 1;
var obj = {
b: 2
};
var fn = function () {};
fn.c = 3;
function test(x, y, z) {
x = 4;
y.b = 5;
z.c = 6;
return z;
}
test(a, obj, fn);
console.log(a + obj.b + fn.c);
复制代码
参考文章:
① www.cnblogs.com/vincentvoid…
② github.com/WQTeam/web-…
③ www.cnblogs.com/cench/p/601…浏览器