[].slice.call(arguments,1) ==argument.slice(1)
相關討論
但是arguments
為類數組對象,沒有slice方法,所以只能通過call方法調用!
window.location 對象會返回很多對象,常用的為 host(域名) ,search(?q=sahkuadkjskji&name=sd&) ,port ,protocol(協議/http/https)
獲取url傳參!
//獲取url傳參
function getParam(name) {
//該正則表達式匹配 以&或者name開頭的 并且以 &結尾的
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
// window.location.search 表示?后面的參數 substr(start,length)
var r = window.location.search.substr(1).match(reg);
if (r != null) {
//decodeURIComponent 解碼
//encodeURIComponent 編碼
// test1="http://www.w3school.com.cn/My first/"
// encodeURIComponent(test1);
//test2="http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F"
// decodeURIComponent(test2);
//這里為啥子是r[2]?
return decodeURIComponent(r[2]);
}
}
json 格式一般有兩種
參考json基礎
第一種 :{key:value,name:ss}
第二種:[{},{},{}]
1. “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
一個對象以“{”開始,“}”結束。每個“key”后跟一“:”,“‘key/value’ 對”之間運用 “,”分隔。
packJson = {"name":"nikita", "password":"1111"}
2. 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)?! ∵@些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基于這些結構的編程語言之間交換成為可能。
packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}];
數組是值的有序集合。一個數組以“[”開始,“]”結束。值之間運用 “,”分隔。
json
1、JSON只有兩種數據類型描述符,大括號{}和方括號[],其余英文冒號:是映射符,英文逗號,是分隔符,英文雙引號""是定義符。
2、大括號{}用來描述一組“不同類型的無序鍵值對集合”(每個鍵值對可以理解為OOP的屬性描述),方括號[]用來描述一組“相同類型的有序數據集合”(可對應OOP的數組)。
3、上述兩種集合中若有多個子項,則通過英文逗號,進行分隔。
4、鍵值對以英文冒號:進行分隔,并且建議鍵名都加上英文雙引號”",以便于不同語言的解析。
5、JSON內部常用數據類型無非就是字符串、數字、布爾、日期、null 這么幾個,字符串必須用雙引號引起來,其余的都不用,日期類型比較特殊,這里就不展開講述了,只是建議如果客戶端沒有按日期排序功能需求的話,那么把日期時間直接作為字符串傳遞就好,可以省去很多麻煩。
js 兼容獲取可視區域寬高
documen.documentElement.clientWidth||document.body.clientWidth;
因為不聲名ducument的話,第一個取不到。
clientWidth:width+padding
常見跨域方式為jsonp和cors(Cross Origin Resource Sharing)
jsonp 原理是客戶端通過動態添加請求,在url里面攜帶參數,服務器根據參數返回可執行的js文件,本地通常有一個和url參數名相同的函數.
cors 服務器在res中返回Access-Control-Allow-Origin: http://api.qiutc.me
postMessage
// 主頁面 blog.qiutc.com
<script>function onLoad() { var iframe =document.getElementById('iframe'); var iframeWindow = iframe.contentWindow; iframeWindow.postMessage("I'm message from main page.");}</script><iframe src="http://www.qiutc.me/b.html" onload="onLoad()"</iframe>
// b 頁面
<script>window.onmessage = function(e) { e = e || event; console.log(e.data);}</script>
offsetWidth:client+border+滾動條
關于local Storage
Aplication Catch(本地緩存應用所需數據)
manifest 先檢查,沒有更新則不下載,有更新下載, 下次打開才更新。
localStorage (鍵值對)
Web SQL
box-shadow: h-shadow v-shadow blur spread color inset;
Jquery 中 attr和prop的區別,當屬性值為 true,false或者disable時使用prop,其他情況使用attr!
checkbox為多選框。選中多選框的值可以利用
$("parent").find(":checkbox:checked")表示當前選中的。
mouseover和mouseenter的區別:冒泡的時候不一樣!
常用mouseenter,mouseover會多次觸發!
focusin和focus的區別,focusin是input元素,而focus一般是父元素。
Array.from("akdd")可以將類數組轉化為數組! [...like-array]=Array.from(like-array)