2018年10月24日 JS中 【“邏輯運算”,“面試題:作用域問題”,“dom對象”】這些問題的意見見解
1、邏輯運算 || && !
||:遇到第一個為true的值就中止並返回
&&:遇到第一個為false的值就中止並返回,如果沒有false值,就返回最後一個不是false值的true值
||和&&:&&的優先級大於||;
console.log(1&&3||0&&4); 3
console.log(4&&3-2); 1
2、作用域的問題
(1)Js代碼如何執行
(2)js環境
(3)棧 堆
Js代碼在客戶端執行前,瀏覽器會給這個js一個全局環境,這個環境分兩個部分,
一個是內存模塊,一個是執行模塊,內存模塊找到當前環境下的所有帶var和function的關鍵字,var進行變量聲明,function 進行聲明和定義。
執行模塊逐行向下執行(會出現語句和代碼塊),如果是函數執行。
函數執行:會開辟一個類似於window的私有作用域,在這個私有作用域裏又分兩個模塊,內存模塊和執行模塊。內存模塊找出當前環境下的所有帶var和function的關鍵字,還需要註意函數的形參,因為他也是一個私有變量,帶var的進行變量聲明為私有變量
Function 聲明和定義都完成了,然後是執行模塊逐行執行。
3、阿裏面試題分析
var a=100;
function text(){
var b=2*a;
var a=200;
var c=a/2;
alert(b); NaN
alert(c); 100
}
text()
4、dom對象
全稱:document object model
(1)dom主要研究html中的節點(標簽)對節點進行操作,改變標簽,改變標簽屬性,改變css屬性,改變css樣式
添加事件等,dom的研究對象是document
(2)操作流程
a:選擇你要操作的節點
document.getElementById("idname")通過id獲取元素
document.getElementsByTagName("標簽名")標簽獲取
獲取整個網頁中所有的div構成的一個數組集合
document.getElementsByClassName("name")通過class獲取整個網頁中
class叫做name的數組集合
b:輸出
-document.write 在整個文檔輸出
-指定的元素中輸出 : element.innerHTML= innerHTML指元素中的內容
指定的元素中輸出 :element.innerText=
二者的區別:前者可以嵌套標簽
後者只能輸出文本
document.getElementById("a").innerHTML="<b>jdcb sjchjbajsjab</b>"
好文要頂 已關註 收藏該文2018年10月24日 JS中 【“邏輯運算”,“面試題:作用域問題”,“dom對象”】這些問題的意見見解