1. 程式人生 > >隨筆記錄零碎javascript知識點

隨筆記錄零碎javascript知識點

彈性 運行 cas form 情況 窗口 安全性 div 路徑

1、字符串的截取
var str="www.baidu.com/?page";
// 1、substring() indexOf() str.lastIndexOf()字符串剪裁
str.substring(0, str.indexOf("?page"));
str.substring(0, str.lastIndexOf("?page"));
// 2、正則表達式
str.replace(/?page/, "");
// 3、split() join() 字符串分拆、合並
str.split("?page").join("");
//4、splice() indexOf() str.lastIndexOf()字符截取
str.splice(str.indexOf("?page"),"?page".length,‘‘)
str.splicestr.lastIndexOf("?page"),"?page".length,‘‘)
//5、substr(start,length)字符串截取 length代表截取的長度
str.substr(0,str.indexOf("?page"))
str.substr(0,str.lastIndexOf("?page"))
使用情況:
1、4、5在Goolge運行最快,
2、除了在goolge最快
3、最慢,因為它執行了字符專數組,數組轉字符
建議:沒有要求只在goolge環境下使,使用正則表達是截取

2、獲取當前星期
1、if判斷
var str = "";
var week = new Date().getDay();
if (week == 0) {
str = "今天是星期日";
} else if (week == 1) {
str = "今天是星期一";
} else if (week == 2) {
str = "今天是星期二";
} else if (week == 3) {
str = "今天是星期三";
} else if (week == 4) {
str = "今天是星期四";
} else if (week == 5) {
str = "今天是星期五";
} else if (week == 6) {
str = "今天是星期六";
}else{
console.log(‘bug‘)
}
2、switch判斷
var str1 = "今天是星期";
var week = new Date().getDay();
switch (week) {
case 0 :
str1 += "日";
break;
case 1 :
str1 += "一";
break;
case 2 :
str1 += "二";
break;
case 3 :
str1 += "三";
break;
case 4 :
str1 += "四";
break;
case 5 :
str1 += "五";
break;
case 6 :
str1 += "六";
break;
default:
console.log(‘bug‘)
break;
}

3、數組截取
var a = new Array("日", "一", "二", "三", "四", "五", "六");
var week = new Date().getDay();
var str = "今天是星期"+ a[week];
4、字符截取
var str = "今天是星期" + "日一二三四五六".charAt(new Date().getDay());
str.charAt()獲取標識的字符;當然也可以使用別的字符串截取方法(substring,substr,splice)但沒有charAt好因為它在執行上最省事

使用情況:
字符截取》數組截取》switch判斷》if判斷
建議使用:4、字符截取

3、cookie sessionStorage localStorage 存儲
共同點:都是保存在瀏覽器端,且同源的。區別:cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞。而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。cookie數據還有路徑(path)的概念,可以限制cookie只屬於某個路徑下。存儲大小限制也不同,cookie數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。數據有效期不同,sessionStorage:僅在當前瀏覽器窗口關閉前有效,自然也就不可能持久保持;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。作用域不同,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知機制,可以將數據更新的通知發送給監聽者。Web Storage 的 api 接口使用更方便。
cookie存儲大小4k;sessionStorage localStorage 存儲大小5M,IE8下每個獨立的存儲空間為10M,
與Cookie相比,Web Storage存在不少的優勢,概括為以下幾點:

1. 存儲空間更大:IE8下每個獨立的存儲空間為10M,其他瀏覽器實現略有不同,但都比Cookie要大很多。

2. 存儲內容不會發送到服務器:當設置了Cookie後,Cookie的內容會隨著請求一並發送的服務器,這對於本地存儲的數據是一種帶寬浪費。而Web Storage中的數據則僅僅是存在本地,不會與服務器發生任何交互。

3. 更多豐富易用的接口:Web Storage提供了一套更為豐富的接口,使得數據操作更為簡便。

4. 獨立的存儲空間:每個域(包括子域)有獨立的存儲空間,各個存儲空間是完全獨立的,因此不會造成數據混亂。

Cookie安全性好,並且可以用過期時間來做一些必要的判斷;當然sessionStorage localStorag也是可以設置過期時間的,當必須自定義,需要在存儲信息是存儲當前時間,以及存在時長,獲取在存儲時間和當前時間進行減法就好,當操作比較多不建議使用。

4、怎麽實現居中布局
1、magrin:auto;適合pc 居中,但是必須設置width、height
2、彈性盒 display:flex;
justify-content: center;
align-items: center;
3、定位實現居中
A、 position: absolute;
top: 50%;
left: 50%;
width:100%;height:100%;
transform: translate(-50%,-50%);
B、 position: absolute;
top:0;
left: 0;
right:0;
bottom;0;
width:100px;height:100px;
magin:auto;
C、 position: absolute;
top:50%;
left: 50%;
width:200px;height:200px;
magin-left:-100px;
magin-top;-100px;

建議:使用彈性盒居中;但是要註意兼用(存在兼容問題);

5、 禁止a標簽跳轉鏈接
<a href ="javascript:return false;">這個鏈接不能點擊 </a> 也可以寫成
<a href ="javascript:volid(0);">這個鏈接不能點擊 </a> 都一樣會阻止a 標簽的跳轉行為!


隨筆記錄零碎javascript知識點