1.偽類與偽元素的區別? 1) 定義區別 2) 語法區別 3) 偽類/偽元素一覽表 2. css樣式優先順序,各自的權重 3.常見的DOM操作有哪些? 主要操作包括:查找節點,新建節點,添加節點,刪除節點,修改節點;開發中,我們用到最多的是element類型,用於表現HTML元素,提供了對元素標簽名、 ...
1.偽類與偽元素的區別?
1) 定義區別
偽類 偽類用於選擇DOM樹之外的信息,或是不能用簡單選擇器進行表示的信息。 前者包含那些匹配指定狀態的元素,比如:visited,:active;後者包含那些滿足一定邏輯條件的DOM樹中的元素,比如:first-child,:first-of-type,:target。 偽元素 偽元素為DOM樹沒有定義的虛擬元素。不同於其他選擇器,它不以元素為最小選擇單元,它選擇的是元素指定內容。 比如::before表示選擇元素內容的之前內容,也就是"";::selection表示選擇元素被選中的內容。
2) 語法區別
在CSS3中,偽類與偽元素在語法上也有所區別,偽元素修改為以::開頭。 但因為歷史原因,瀏覽器對以:開頭的偽元素也繼續支持,但建議規範書寫為::開頭。
3) 偽類/偽元素一覽表
<偽類如下> :active 選擇正在被激活的元素 1 :hover 選擇被滑鼠懸浮著元素 1 :link 選擇未被訪問的元素 1 :visited 選擇已被訪問的元素 1 :first-child 選擇滿足是其父元素的第一個子元素的元素 2 :lang 選擇帶有指定 lang 屬性的元素 2 :focus 選擇擁有鍵盤輸入焦點的元素 2 :enable 選擇每個已啟動的元素 3 :disable 選擇每個已禁止的元素 3 :checked 選擇每個被選中的元素 3 :target 選擇當前的錨點元素 3 <偽元素如下> ::first-letter 選擇指定元素的第一個單詞 1 ::first-line 選擇指定元素的第一行 1 ::after 在指定元素的內容後面插入內容 2 ::before 在指定元素的內容前面插入內容 2 ::selection 選擇指定元素中被用戶選中的內容 3
2. css樣式優先順序,各自的權重
優先順序別: 通用選擇器(*) < 元素(類型)選擇器 < 類選擇器 < 屬性選擇器 < 偽類 < ID 選擇器 < 內聯樣式 權重: 第一等:代表內聯樣式,如: style=””,權值為1000。 第二等:代表ID選擇器,如:#content,權值為100。 第三等:代表偽類和屬性選擇器,如.content,權值為10。 第四等:代表類型選擇器和偽元素選擇器,如div p,權值為1。
3.常見的DOM操作有哪些?
主要操作包括:
查找節點,新建節點,添加節點,刪除節點,修改節點;
開發中,我們用到最多的是element類型,
用於表現HTML元素,提供了對元素標簽名、子節點及特性的訪問。
1)DOM常用操作舉例:
// 查找節點
document.getElementById('id屬性值'); // 返回擁有指定id的第一個對象的引用
document.getElementsByClassName('class屬性值'); // 返回擁有指定class的對象集合
2)新建節點:
// 創建新的元素節點
document.createElement('元素名');
// 創建新的屬性節點
document.createAttribute('屬性名');
// 創建新的文本節點
document.createTextNode('文本內容');
// 創建新的註釋節點
document.createComment('註釋節點');
3)添加節點:
var element = document.getElementsByTagName('p')[0];
element.innerHTML='新增文本內容'; //插入文本內容
4)刪除節點:
parentNode.removeChild( existingChild ); //刪除已有的子節點,返回值為刪除節點
element.removeAttribute('屬性名'); // 刪除具有指定屬性名稱的屬性,無返回值
element.removeAttributeNode( attrNode ); // 刪除指定屬性,返回值為刪除的屬性
5)修改節點:
// 添加屬性節點,修改屬性值
element.setAttribute( attributeName, attributeValue );
6)屬性節點:
// 增添id屬性,並修改class屬性值
var element = document.getElementsByTagName('p')[0];
// 添加屬性節點
var attr = document.createAttribute('id');
attr.value = 'idValue';
element.setAttributeNode(attr);
// 修改屬性值
var attr = document.createAttribute('class');
attr.value = 'classNewValue';
element.setAttributeNode(attr);
7)DOM事件:
允許 JavaScript 對 HTML 事件作出反應,主要包括:
onclick 事件——當用戶點擊時
onload 事件——用戶進入
onunload 事件——用戶離開
onmouseover事件——滑鼠移入
onmouseout事件——滑鼠移出
onmousedown事件——滑鼠按下
onmouseup 事件——滑鼠抬起
4.判斷數據類型有哪些方法?
1)typeof
typeof 是一個操作符,其右側跟一個一元表達式,並返回這個表達式的數據類型。
返回的結果用該類型的字元串(全小寫字母)形式表示,
包括以下 7 種:number、boolean、symbol、string、object、undefined、function 等。
2) instanceof
instanceof 是用來判斷 A 是否為 B 的實例,
表達式為:A instanceof B,如果 A 是 B 的實例,則返回 true,否則返回 false。
在這裡需要特別註意的是:instanceof 檢測的是原型
3) constructor
當一個函數 F被定義時,JS引擎會為F添加 prototype 原型,
然後再在 prototype上添加一個 constructor 屬性,並讓其指向 F 的引用。
4)toString
toString() 是 Object 的原型方法,調用該方法,預設返回當前對象的 [[Class]]點擊並拖拽以移動 。這是一個內部屬性,其格式為 [object Xxx] ,其中 Xxx 就是對象的類型。對於 Object 對象,直接調用 toString() 就能返回 [object Object] 。而對於其他對象,則需要通過 call / apply 來調用才能返回正確的類型信息。
5.介紹一下 JS 的基本數據類型?
Undefined、Null、Boolean、Number、String
6.介紹一下 JS 有哪些內置對象?
Object 是 JavaScript 中所有對象的父對象;
數據封裝類對象:Object、Array、Boolean、Number、String
其他對象:Function、Argument、Math、Date、RegExp、Error
7.push()-pop()-shift()-unshift()分別是什麼功能?
// push 方法
// 將新元素添加到一個數組中,並返回數組的新長度值。
var a=[1,2,3,4];
a.push(5);
// pop 方法
// 移除數組中的最後一個元素並返回該元素。
var a=[1,2,3,4];
a.pop();
// shift 方法
// 移除數組中的第一個元素並返回該元素。
var a=[1,2];
a.shift();
// unshift 方法
// 將指定的元素插入數組開始位置並返回該數組。
var a=[1,2];
a.unshift(0);
8.null 和 undefined 有何區別?
1) null 表示一個對象被定義了,值為“空值”;
undefined 表示不存在這個值。
typeof undefined //"undefined"
2) undefined :是一個表示"無"的原始值或者說表示"缺少值",就是此處應該有一個值,但是還沒有定義。
當嘗試讀取時會返回 undefined; 例如變數被聲明瞭,但沒有賦值時,就等於undefined。
typeof null //"object" null : 是一個對象(空對象, 沒有任何屬性和方法);
3) 註意: 在驗證null時,一定要使用 === ,因為 == 無法分別 null 和 undefined
9.new操作符具體幹了什麼?
1) 創建一個空對象,並且 this 變數引用該對象。
2) 屬性和方法被加入到 this 引用的對象中。
3) 新創建的對象由 this 所引用。
10.你對 JSON 瞭解嗎?
1) JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。
2) 它是基於JavaScript的一個子集。數據格式簡單,易於讀寫,占用帶寬小。
如:{"age":"12", "name":"back"}
1.偽類與偽元素的區別?
1) 定義區別
偽類
偽類用於選擇DOM樹之外的信息,或是不能用簡單選擇器進行表示的信息。
前者包含那些匹配指定狀態的元素,比如:visited,:active;後者包含那些滿足一定邏輯條件的DOM樹中的元素,比如:first-child,:first-of-type,:target。
偽元素
偽元素為DOM樹沒有定義的虛擬元素。不同於其他選擇器,它不以元素為最小選擇單元,它選擇的是元素指定內容。
比如::before表示選擇元素內容的之前內容,也就是"";::selection表示選擇元素被選中的內容。
2) 語法區別
在CSS3中,偽類與偽元素在語法上也有所區別,偽元素修改為以::開頭。
但因為歷史原因,瀏覽器對以:開頭的偽元素也繼續支持,但建議規範書寫為::開頭。
3) 偽類/偽元素一覽表
<偽類如下>
:active 選擇正在被激活的元素 1
:hover 選擇被滑鼠懸浮著元素 1
:link 選擇未被訪問的元素 1
:visited 選擇已被訪問的元素 1
:first-child 選擇滿足是其父元素的第一個子元素的元素 2
:lang 選擇帶有指定 lang 屬性的元素 2
:focus 選擇擁有鍵盤輸入焦點的元素 2
:enable 選擇每個已啟動的元素 3
:disable 選擇每個已禁止的元素 3
:checked 選擇每個被選中的元素 3
:target 選擇當前的錨點元素 3
<偽元素如下>
::first-letter 選擇指定元素的第一個單詞 1
::first-line 選擇指定元素的第一行 1
::after 在指定元素的內容後面插入內容 2
::before 在指定元素的內容前面插入內容 2
::selection 選擇指定元素中被用戶選中的內容 3
2. css樣式優先順序,各自的權重
優先順序別:
通用選擇器(*) < 元素(類型)選擇器 < 類選擇器 < 屬性選擇器 < 偽類 < ID 選擇器 < 內聯樣式
權重:
第一等:代表內聯樣式,如: style=””,權值為1000。
第二等:代表ID選擇器,如:#content,權值為100。
第三等:代表偽類和屬性選擇器,如.content,權值為10。
第四等:代表類型選擇器和偽元素選擇器,如div p,權值為1。
3.常見的DOM操作有哪些?
主要操作包括:
查找節點,新建節點,添加節點,刪除節點,修改節點;
開發中,我們用到最多的是element類型,
用於表現HTML元素,提供了對元素標簽名、子節點及特性的訪問。
1)DOM常用操作舉例:
// 查找節點
document.getElementById('id屬性值'); // 返回擁有指定id的第一個對象的引用
document.getElementsByClassName('class屬性值'); // 返回擁有指定class的對象集合
2)新建節點:
// 創建新的元素節點
document.createElement('元素名');
// 創建新的屬性節點
document.createAttribute('屬性名');
// 創建新的文本節點
document.createTextNode('文本內容');
// 創建新的註釋節點
document.createComment('註釋節點');
3)添加節點:
var element = document.getElementsByTagName('p')[0];
element.innerHTML='新增文本內容'; //插入文本內容
4)刪除節點:
parentNode.removeChild( existingChild ); //刪除已有的子節點,返回值為刪除節點
element.removeAttribute('屬性名'); // 刪除具有指定屬性名稱的屬性,無返回值
element.removeAttributeNode( attrNode ); // 刪除指定屬性,返回值為刪除的屬性
5)修改節點:
// 添加屬性節點,修改屬性值
element.setAttribute( attributeName, attributeValue );
6)屬性節點:
// 增添id屬性,並修改class屬性值
var element = document.getElementsByTagName('p')[0];
// 添加屬性節點
var attr = document.createAttribute('id');
attr.value = 'idValue';
element.setAttributeNode(attr);
// 修改屬性值
var attr = document.createAttribute('class');
attr.value = 'classNewValue';
element.setAttributeNode(attr);
7)DOM事件:
允許 JavaScript 對 HTML 事件作出反應,主要包括:
onclick 事件——當用戶點擊時
onload 事件——用戶進入
onunload 事件——用戶離開
onmouseover事件——滑鼠移入
onmouseout事件——滑鼠移出
onmousedown事件——滑鼠按下
onmouseup 事件——滑鼠抬起
4.判斷數據類型有哪些方法?
1)typeof
typeof 是一個操作符,其右側跟一個一元表達式,並返回這個表達式的數據類型。
返回的結果用該類型的字元串(全小寫字母)形式表示,
包括以下 7 種:number、boolean、symbol、string、object、undefined、function 等。
2) instanceof
instanceof 是用來判斷 A 是否為 B 的實例,
表達式為:A instanceof B,如果 A 是 B 的實例,則返回 true,否則返回 false。
在這裡需要特別註意的是:instanceof 檢測的是原型
3) constructor
當一個函數 F被定義時,JS引擎會為F添加 prototype 原型,
然後再在 prototype上添加一個 constructor 屬性,並讓其指向 F 的引用。
4)toString
toString() 是 Object 的原型方法,調用該方法,預設返回當前對象的 [[Class]]點擊並拖拽以移動 。這是一個內部屬性,其格式為 [object Xxx] ,其中 Xxx 就是對象的類型。對於 Object 對象,直接調用 toString() 就能返回 [object Object] 。而對於其他對象,則需要通過 call / apply 來調用才能返回正確的類型信息。
5.介紹一下 JS 的基本數據類型?
Undefined、Null、Boolean、Number、String
6.介紹一下 JS 有哪些內置對象?
Object 是 JavaScript 中所有對象的父對象;
數據封裝類對象:Object、Array、Boolean、Number、String
其他對象:Function、Argument、Math、Date、RegExp、Error
7.push()-pop()-shift()-unshift()分別是什麼功能?
// push 方法
// 將新元素添加到一個數組中,並返回數組的新長度值。
var a=[1,2,3,4];
a.push(5);
// pop 方法
// 移除數組中的最後一個元素並返回該元素。
var a=[1,2,3,4];
a.pop();
// shift 方法
// 移除數組中的第一個元素並返回該元素。
var a=[1,2];
a.shift();
// unshift 方法
// 將指定的元素插入數組開始位置並返回該數組。
var a=[1,2];
a.unshift(0);
8.null 和 undefined 有何區別?
1) null 表示一個對象被定義了,值為“空值”;
undefined 表示不存在這個值。
typeof undefined //"undefined"
2) undefined :是一個表示"無"的原始值或者說表示"缺少值",就是此處應該有一個值,但是還沒有定義。
當嘗試讀取時會返回 undefined; 例如變數被聲明瞭,但沒有賦值時,就等於undefined。
typeof null //"object" null : 是一個對象(空對象, 沒有任何屬性和方法);
3) 註意: 在驗證null時,一定要使用 === ,因為 == 無法分別 null 和 undefined
9.new操作符具體幹了什麼?
1) 創建一個空對象,並且 this 變數引用該對象。
2) 屬性和方法被加入到 this 引用的對象中。
3) 新創建的對象由 this 所引用。
10.你對 JSON 瞭解嗎?
1) JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。
2) 它是基於JavaScript的一個子集。數據格式簡單,易於讀寫,占用帶寬小。
如:{"age":"12", "name":"back"}