1. 程式人生 > >小白學前端12

小白學前端12

人生 nbsp ons hidden 前端 創建 vertical tab 輸出

1.
var string = "you are";
var text = string;
string = "best";
console.log(text); //輸出"you are"
變量為一存儲空間,但text=string不是說text指向string的存儲空間,
而是text新建一個存儲空間來存儲string的值

var string = {0:"you are"};
var text = string;
string[0]="best"; //輸出{0:"best"}
//string = {0:"best"}; //輸出{0:"you are"}
console.log(text);
什麽時候為指向呢?--數組!(對象)

2.
var array1=[1,2,3];
var array2=[3,4,5];
array1.concat(array2);
console.log(array1);
因為concat為純函數,不會帶來副作用的,以下為正解:

var array1=[1,2,3];
var array2=[3,4,5];
var array3 = array1.concat(array2);
console.log(array3);

3.
一個很好的驗證閉包的例子
var array =[1,2,3,4,5];
for(var i=0;i<array.length;i++) array[i]+=1;
console.log(array); //輸出[2,3,4,5,6]

var array =[1,2,3,4,5];
function forEach(array,action){
for(var i=0;i<array.length;i++)
// array[i]+=1;
action(array[i]);
}
forEach(array,function(arrayElem){
arrayElem+=1;
});
console.log(array); //輸出[1,2,3,4,5]

來於之前對改變數組則會改變所有指向該數組的元素的認識,對forEach而言可以實現對每個元素遍歷,並附加操作,
那麽直接執行改變數組元素的操作,不就會改變原來的數組了!
實際並不會,哪怕forEach並未創建新數組
因為閉包:局部變量會在每次函數調用時重新創立,不同的函數調用是不會對其他函數內的局部變量產生任何的影響
在這裏即是forEach調用的araay[i]已經是新創建的一個局部變量了,並不會對上一步函數調用的array產生任何影響

4.例如一個數組[21,21,18,19,21]代表某個人生活在哪個世紀,
另一個數組
[{name:"xiaomin",age:23},
{name:"lili",age:22},
{name:"nina",age:18},
{name:"bala",age:25},
{name:"limingming",age:28}
]代表相應的人的基本信息,依次對應著第一個數組的元素,
那麽如何遍歷將同一個世紀的人的平均年齡算出來呢?

4.在做薇薇學院的第二個例子時,發現img和ul元素放在一個包裹塊中,會出現換行,然後設定寬度不合適的話,會出現ul元素顯示不出來(header加了overflow:hidden)
>>>
因為ul是塊元素啊,即使被包含,它還是會出現上下文換行的啊

解決辦法:
1.設置背景圖片的方法(html裏面沒有img元素)

2.設置img為absolute,再設置相對於包含塊的偏移

5.怎麽讓文字在div中垂直居中(例如導航欄裏面a元素的文字)?
>>>
百度知道搜出來一個很好的答案:
1.單行垂直居中:
如果一個容器內只有一行文字,那麽設置它的實際高度height和所在行的高度line-height相等是最簡單的.(設定height與line-height相同)
2.如果是一段文字,父元素不限高,可以采用padding: 20px 0; (設定padding,使上下padding值相同即可)
3.如果是一段文字,父元素有固定高:
div#wrap{height:400px;display:table}
div#content{vertical-align:middle;display:table-cell;}
...//但以上ie6不支持
div#wrap{height:400px;width:700px;position:relative}
div#subwrap{position:absolute;top:50%}
div#content{position:relative;top:-50%}
//實際未測試出居中效果....也不知道問題出在哪


6.怎麽把ul前面的點去掉?
list-style:none;

7.怎麽讓文本段的首行縮進?
text-indent:2em;
但面對ol標簽時,前面的序號並不能縮進怎麽辦?

8.怎麽讓圖片和文字包括在一起,形成一種相片的感覺?


小白學前端12