#javascript基礎(chǔ)
1. 字符串中**只有** ` "1"==true` ? ? **只有**`"0"==false `和` ""==false`
null和undefined? !=false 和贮泞!=ture
2.? eval("("+data+")");? //轉(zhuǎn)換為json對象 data為普通的js對象? 轉(zhuǎn)換后為JSON(key和val必須加括號)
`eval("{}");? // return undefined
eval("({})"); // return object[Object]
var json=(new Function('return'+data))() return object[Object] 也會返回json對象
`
3.
> `array.map(callback[, thisArg]) `? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回新數(shù)組(由callback中return 的值組成)
`array.filter(callback[, thisArg])? `
`array.forEach(callback[, thisArg])` 總是返回 undefined
callbak的參數(shù) currentValue , index , array
> for (x in obj/arr)? x為key? obj[key]=value
jQuery: `$.each(object, callback)`和 `$(selector).each(callback) `? callback(index,value)與js原生相反
4.
Array.prototype.slice.call(arguments)
Array.prototype.slice.call(arguments,0)
可以將arguments轉(zhuǎn)換為數(shù)組
Object.prototype.toString.call(array)=="[object Array]"? ? ? ? ? ? //判斷數(shù)組
### DOM相關(guān)
document.activeElement :? 當(dāng)前獲得焦點的元素
event.currentTarget :? 返回綁定事件監(jiān)聽的元素(current:現(xiàn)在的)
在事件處理程序內(nèi)部,this===event.currentTarget===綁定元素
event.target :? ? 返回實際觸發(fā)的目標(biāo)元素(IE 中為 event.srcElement)
nodeType? 1:元素? 2:屬性節(jié)點? 3:文本節(jié)點
---
clientWidth? =? 內(nèi)容寬度+padding? (不包括滾動條)
scrollWidth? = Math.max(**設(shè)寬**+padding, 內(nèi)部元素撐開的寬度+左padding,也不包括滾動條17px)
offsetWidth? =? 內(nèi)容寬度+padding+border (對象整體的實際寬度,包滾動條等邊線)
offsetParent =? 離當(dāng)前節(jié)點最近定位過的父級元素(沒有就默認是body)
offsetLeft = (offsetParent的padding-left)+(中間元素的offsetWidth和margin)+(當(dāng)前元素的margin-left)? 也就是offsetParent與當(dāng)前元素的直接距離
**注:body不能有border,否則存在兼容性問題**
# css基礎(chǔ)
*? input,button,select曲稼,textarea標(biāo)簽的font-size:是不會繼承父級的(必須重設(shè)) a標(biāo)簽? color的值是不會繼承父級的
*? 高度的百分比:父級必須有設(shè)置高度(有明確的高度設(shè)置)着逐,如果父級和子級都設(shè)置`height:100%;`則父級和子級高度一樣,由子級撐開涵紊。
寬度百分比同理: 當(dāng)父級和子級都為inline-block且設(shè)置`height:100%;`則父子子級寬度一樣愚铡,由子級撐開蛉签。
* input(除了 type="image"),button,textarea 默認都為`box-sizeing:border-box;`
* 對于行內(nèi)元素 margin和padding只有水平方向有作用
* JPG:不支持透明半透明,所有空白區(qū)域填充白色(網(wǎng)頁中的大圖沥寥、高清圖:體積大)
GIF:支持透明碍舍,不支持半透明(網(wǎng)頁中的小圖標(biāo)、動態(tài)圖片)
png8:支持透明营曼,不支持半透明(網(wǎng)頁中的小圖標(biāo))
png24:支持透明乒验,也支持半透明(圖像中存在半透明效果的圖片)
*? **z-index**
使用了 position 屬性值為 absolute愚隧、relative 的層蒂阱,將會比普通層更高層次。使用了小于1的 opacity 屬性的層(在層級影響上和position:非static一樣,也比普通頁面高)
層級的覆蓋關(guān)系:從最外層設(shè)置了z-index的地方開始比較
(z-index>=0)子級在父級之上
* 垂直margin合并問題
子級與父級:若父級設(shè)置了合并方向的padding狂塘,border或觸發(fā)BFC則垂直外邊距不會合并? ? 兄弟節(jié)點之間垂直方向必定合并
* ###table和table-cell
1. display:table-cell;
沒有設(shè)置width時录煤,若內(nèi)部自然撐開的寬度(***自寬***)小于父級設(shè)置寬度,則寬度=父級寬度;若內(nèi)部寬度>父級荞胡,則寬度由內(nèi)部撐開(會溢出父級)
直接設(shè)置width>父級寬度是無效的妈踊,最終會表現(xiàn)為和父寬一樣(另外:當(dāng)設(shè)置的寬度和自寬都《父寬時晰奖,width=Math.max(設(shè)寬,自寬)
2. display:table;內(nèi)有display:table-cell;? 若設(shè)置table-cell的元素的寬度之和>父級table設(shè)置的寬度,則默認會撐開父級寬度(除非設(shè)置table-layout:fixed;)
3. 設(shè)置了display:table-cell的元素對寬度高度敏感肩刃,對margin值無反應(yīng),響應(yīng)padding屬性任斋,基本上就是活脫脫的一個td標(biāo)簽元素了萝勤。
4. table-cell的高度由heightg和line-height中較大的一個決定
5.? table-cell 不能繼承父級的寬高露筒,除非父級是 table 。(同一行的td寬度之和=父級寬度之和(不夠會撐開)敌卓,同一行的td高度由這一行中最大高度決定)