由於瀏覽器的兼容問題,不一樣瀏覽器對有些標籤的默認值是不一樣的,若是沒對CSS初始化每每會出現瀏覽器之間的頁面顯示差別javascript
最簡單粗暴的css
* { margin: 0; padding: 0; }
更好的選擇Normalize.css 相比於傳統的CSS reset,Normalize.css是一種現代的、爲HTML5準備的優質替代方案html
Reset CSS:只選對的,不選"貴"的,因根據具體項目來作選擇權衡,不該該濫用前端
div
?(至少給出2種解決方法)1.absolute + transform:java
<div class="parent"> <div class="child">Demo</div> </div> <style> .parent { position: relative; } .child { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } </style>
2.inline-block + text-align + table-cell + vertical-aligngit
<div class="parent"> <div class="child">Demo</div> </div> <style> .parent { text-align: center; display: table-cell; vertical-align: middle; } .child { display: inline-block; } </style>
3.flex + justify-content + align-itemses6
<div class="parent"> <div class="child">Demo</div> </div> <style> .parent { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /*垂直居中*/ } </style>
漸進加強 VS 優雅降級,你怎麼看?
JavaScript 數組去重?(簡述思路便可)
遍歷數組法: 這應該是最簡單的去重方法(實現思路:新建一新數組,遍歷數組,值不在新數組就加入該新數組中)github
// 遍歷數組去重法 function unique(arr){ var _arr = [] //遍歷當前數組 for(var i = 0; i < arr.length; i++){ //若是當前數組的第i已經保存進了臨時數組,那麼跳過, //不然把當前項push到臨時數組裏面 if (_arr.indexOf(arr[i]) == -1) _arr.push(arr[i]) } return _arr }
注意點:indexOf 爲 ES5 的方法,注意瀏覽器兼容,須要本身實現 indexOfajax
對象鍵值對(hash) 法:速度快,高效,佔用更大的內存換取更快的時間,用 JavaScript 中的 Object 對象來當作哈希表,hash去重的核心是構建了一個 hash 對象來替代 indexOfjson
// hash 去重法 function unique(arr){ var _arr = [], hash = {} for (var i = 0; i < arr.length; i++) { var item = arr[i] var key = typeof(item) + item // 對象的鍵值只能是字符串, typeof(item) + item來去分1和'1'的狀況 if(hash[key] !== 1){ _arr.push(item) hash[key] = 1 } } return _arr }
炫酷的 es6 Set數據結構: ES6 提供了新的數據結構 Set。它相似於數組,可是成員的值都是惟一的,沒有重複的值
function unique(arr){ return Array.from(new Set(arr)) // Array.from方法用於將兩類對象轉爲真正的數組: // 相似數組的對象(array-like object)和可遍歷(iterable)的對象 }
關於 JavaScript 數組去重,還有不少不少能夠講,篇幅有限,這裏介紹了幾種常規的,更多的本身去探索
ajax
獲取 Linus Torvalds 的GitHub信息(API:https://api.github.com/users/torvalds,如記不清具體代碼簡述過程便可),並將JSON字符串解析爲JSON對象,並講講對JSON的瞭解這是對 ajax與json的考察
ajax的全稱:Asynchronous Javascript And XML,異步傳輸+js+xml 如今差很少都用JSON
下面就來貼代碼吧:
var api = 'https://api.github.com/users/torvalds' var xhr = new XMLHttpRequest() // 建立XMLHttpRequest對象 if(window.XMLHttpRequest){ // 兼容處理 xhr = new XMLHttpRequest() }else{ xhr = new ActiveXObject('Microsoft.XMLHTTP')// 兼容ie6如下下 } xhr.open('get',api,true) //設置請求信息 xhr.send() //提交請求 //等待服務器返回內容 xhr.onreadystatechange = function() { if ( xhr.readyState == 4 && xhr.status == 200 ) { console.log(JSON.parse(xhr.responseText)) // 使用JSON.parse解析JSON字符串 } }
上面這端代碼應該就是最簡單的一個完整的AJax,固然了,你能夠對它進行各類封裝,甚至結合promise,async/await。。。鳥槍換炮
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它是基於JavaScript的一個子集。數據格式簡單, 易於讀寫, 佔用帶寬小 如:{"age":"12", "name":"back"}
JSON.parse()
方法解析一個JSON字符串
JSON.stringify()
方法將一個JavaScript值轉換爲一個JSON字符串
eval
也能解析JSON字符串,但不推薦
關於JSON就很少說了,前面寫過一篇 JSON入門
轉載自:https://juejin.im/post/592f8124a0bb9f0058a114d0