簡介:不少概念不清或忘記,從新構建本身的知識體系。天天問本身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…瀏覽器