1 輸出結果
答案是 hello189
字符串與數字相加,得到的還是字符串
2 關於js的執行問題
head部分中的腳本:需調用才執行的腳本或事件觸發執行的腳本
放在HTML的head部分中
body部分中的腳本:當頁面被加載時立即執行的腳本放在HTML的body部分
3 flash js 交互
Flash提供了ExternalInterface接口與JavaScript通信
兩個方法:call和addCallback
作用:call讓Flash調用js裏的方法,addCallback是用來註冊flash函數讓js調用。
4 函數
5 關於清除浮動
講真,我是今天才知道,給父級元素加 overflow 可以清除浮動。而且剛剛試了試,效果和添加 clearfix 一樣
3 當選擇文本
select 事件用於在文本被選中後執行操作‘
$("input").select();
4 關於js中的過濾器filter
首先Object.keys(data)返回的是data可被枚舉的屬性,爲 [“a”, “b”, “c”, “d”],對這個數組中的每一個元素用filter方法過濾,data[“x”]等價於data.x,就是表示data對象的x屬性的值。
一下是羣裏大神的幫助
var data = {a:1, b:2, c:3, d:4};
Object.keys(data).filter(function(key){ return data[key] > 2; });
相當於
['a','b','c','d'].filter(function(key){ return data[key] > 2; }); //Object.keys(data) => ['a','b','c','d'];
相當於
{
var array = ['a','b','c','d'];
var result = [];
for(var i = 0; i < array.length; i++) {
if( (function(key){ return data[key] > 2; }) (array[i], i, array)) {
result.push(array[i])
}
}
}
(function(key){ return data[key] > 2; }) (array[i], i, array)
相當於
(function(key){ return data[key] > 2; }) ('a', 0, ['a','b','c','d'])
相當於
{ a_result_value = data['a'] > 2; }
哎。和大神的距離還有很遠呀。
5 對象
對象是
var newObj = obj,相當於兩個對象指向同一個地址,修改其中任何一個,另外一個也會受到影響。
6 權重問題
權重 :內聯 權重1000 , ID 選擇器 權重:100, 類 僞類 屬性選擇器 權重:10 ,僞對象 選擇器 權重:1
除!important ,內聯權重最大!
important > 內聯 > ID > 類 > 標籤 | 僞類 | 屬性選擇 > 僞對象 > 繼承 > 通配符
A:如果規則是寫在標籤的style屬性中(內聯樣式),則A=1,否則,A=0. 對於內聯樣式,由於沒有選擇器,所以B、C、D的值都爲0,即A=1, B=0, C=0, D=0(簡寫爲1,0,0,0,下同)。
B:計算該選擇器中ID的數量。(例如,#header 這樣的選擇器,計算爲0, 1, 0, 0)。
C:計算該選擇器中僞類及其它屬性的數量(包括class、屬性選擇器等,不包括僞元素)。 (例如, .logo[id=’site-logo’] 這樣的選擇器,計算爲0, 0, 2, 0)。
D:計算該選擇器中僞元素及標籤的數量。(例如,p:first-letter 這樣的選擇器,計算爲0, 0, 0, 2)。
總結
一條樣式規則的整體權重值包含四個獨立的部分:[A, B, C, D];
A表示內聯樣式,只有1或者0兩個值;
B表示規則中ID的數量;
C表示規則中除了ID、標籤和僞元素以外的其它選擇器數量;
D表示規則中標籤和僞元素的數量;
比較時從高位到低位(從A到D)分別比較,高位相同才需要比較低位;
有 !important 標記的屬性權重值無視沒用 !important 指定的一切情況;
多次指定 !important 時,相互抵銷。
7 字符串拼接
對於js中字符串,一旦字符串創建,將無法改變。要改變某個變量的保存的的字符串,首先要銷燬原來的字符串,然後再用另外一個包含新值的字符串填充該變量
var lang = "Java";
lang = lang + "Script";
實現這個操作的過程如下:首先創建一個能容納10個字符的新字符串,然後在這個字符串中填充“Java”和“Script”,最後一步是銷燬原來的字符串“Java”和“Script”,因爲這兩個字符串已經沒用了。所以在某些瀏覽器中字符串拼接速度是很消耗一個性能的過程。
對於本題中的AB選項,其過程如下。
所以本題答案爲c
8 參數傳值
答案爲C .
這相當於函數傳值,把一個值類型(也叫基本類型)傳遞給另一個變量時,其實是分配了一塊新的存儲空間,因此就本題來說,在內部改變這個值時,其實在函數外部對這個值沒有影響。
注意這和
var bb =1;
function aa(){
bb=3;
alert(bb)
}
aa();
alert(bb);
兩者不相同
9 js的基本類型
10 false
如下幾種會返回false:
false null undefined 0 ""(空字符串) NAN