javascript
javascript array添加图片_史上最全的web前端面试题汇总及答案JavaScript之二(二)...
作者:櫻桃小丸子兒
鏈接:https://www.jianshu.com/p/abadcc84e2a4
JavaScript
JS的基本數據類型
number,string,boolean,object,undefined
JavaScript中如何檢測一個變量是一個String類型?請寫出函數實現
function(obj) { return typeof(obj) == ”string”; }JavaScript的DOM是什么意思?
DOM是W3C的對象模型,DOM是中立于平臺和語言的接口,它允許程序和腳本動態的訪問和更新文檔的內容結構和樣式。
如何顯示/隱藏一個DOM元素
更改元素的css style,設為display: none。此外還可以將visibility設為hidden,透明度設為0,或長、寬設為0。
JavaScript的節點是什么意思?
根據W3C的標準,HTML中文檔的所有內容都是節點 ,整個文檔是一個文檔節點 ,每個html元素都是元素節點, Html元素中的文本是文本節點 ,每個html屬性都是屬性節點 ,注釋是注釋節點。
javascript對象的幾種創建方式
1、工廠模式
2、構造函數模式
3、原型模式
4、混合構造函數和原型模式
5、動態原型模式
6、寄生構造函數模式
7、穩妥構造函數模式
javascript繼承的6種方法
1、原型鏈繼承
2、借用構造函數繼承
3、組合繼承(原型+借用構造)
4、原型式繼承
5、寄生式繼承
6、寄生組合式繼承
JavaScript繼承方式詳解
NaN 是什么鬼?typeof 的結果是?如果一個變量的值是 NaN,怎么確定?
NaN 是 'not a number' 的縮寫,表示 "不是一個數字",通常會在運算過程中產生:
console.log('abc' / 4); console.log(4 * 'a');
雖然它 "不是一個數字",但是 NaN 的 typeof 結果卻是 number:
console.log(typeof (4 * 'a')); // number
NaN 和任何變量都不相等,包括 NaN 自己:
console.log(NaN === NaN); // false
判斷一個變量是不是 NaN 可以用 isNaN()
函數,但是這并不是一個完美的函數,有些時候用value !== value似乎更準確,幸運的是,ES6 已經有Number.isNaN() 方法,將比 isNaN()準確的多。
怎樣添加、移除、移動、復制、創建和查找節點?
①創建新節點
createDocumentFragment() //創建一個DOM片段
createElement() //創建一個具體的元素
createTextNode() //創建一個文本節點
②添加、移除、替換、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替換
insertBefore() //插入
③查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值
getElementById() //通過元素Id,唯一性
documentload和documentready的區別
頁面加載完成有兩種事件
①load是當頁面所有資源全部加載完成后(包括DOM文檔樹,css文件,js文件,圖片資源等),執行的一個函數
問題:如果圖片資源較多,加載時間較長,onload后等待執行的函數需要等待較長時間,所以一些效果可能受到影響
②$(document).ready()是當DOM文檔樹加載完成后執行一個函數 (不包含圖片,css等)所以會比load較快執行。
在原生的jS中不包括ready()這個方法,只有load方法就是onload事件
事件綁定的幾種方法?
以button的Click事件為例:
click mefunction clickBtn() {alert('click!');}1、直接在元素上綁定回調函數
click me
2、JS獲取DOM元素對象后,對onclick屬性賦值,綁定事件: document.getElementById('btn').οnclick=clickBtn;
3、JS獲取DOM對象后,調用對象的addEventListener函數綁定事件:document.getElementById('btn').addEventListener('click',clickBtn);
事件冒泡?
JavaScript事件冒泡簡介及應用
在Javascript中什么是偽數組?如何將偽數組轉化為標準數組?
偽數組(類數組):無法直接調用數組方法或期望length屬性有什么特殊的行為,但仍可以對真正數組遍歷方法來遍歷它們。
典型的是函數的argument參數,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬于偽數組。
可以使用Array.prototype.slice.call(fakeArray)將數組轉化為真正的Array對象。
js將偽數組轉換為標準數組的多種方法
常用JS框架都有什么?
前端Js框架匯總
Javascript中callee和caller的作用?
caller是返回一個對函數的引用,該函數調用了當前函數;
callee是返回正在被執行的function函數,也就是所指定的function對象的正文。
數組方法pop() push() unshift() shift()
push()尾部添加 pop()尾部刪除 Unshift()頭部添加 shift()頭部刪除
JavaScript中數組對象詳解
為什么要用IIFE
簡單來說就是為了能模塊化,創建私有變量等等,很多類庫(比如 jQuery)都用了這樣的寫法。
詳解javascript立即執行函數表達式(IIFE)
嚴格模式下進行 Javascript 開發有啥好處?
參考阮一峰老師的Javascript 嚴格模式詳解
Javascript 嚴格模式詳解
Node.js的適用場景
高并發、聊天、實時消息推送
描述一下cookies
web前端面試題第五道—簡述Cookie,在JS中如何操作Cookie?
事件是?IE與火狐的事件機制有什么區別? 如何阻止冒泡?
①我們在網頁中的某個操作(有的操作對應多個事件)。例如:當我們點擊一個按鈕就會產生一個事件。是可以被 JavaScript 偵測到的行為。
② 事件處理機制:IE是事件冒泡、火狐是 事件捕獲;
③ ev.stopPropagation();
如何判斷一個對象是否屬于某個類
使用instanceof
if(a instanceof Person)
{
alert('yes');
}
Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?
hasOwnProperty
js延遲加載的方式有哪些?
defer和async、動態創建DOM方式(用得最多)、按需異步載入js
javascript的本地對象,內置對象和宿主對象
本地對象為array obj regexp等可以new實例化
內置對象為gload Math 等不可以實例化的
宿主為瀏覽器自帶的document,window 等
手寫數組快速排序
關于快排算法的詳細說明,可以參考阮一峰老師的文章快速排序
快速排序(Quicksort)的Javascript實現
“快速排序”的思想很簡單,整個排序過程只需要三步:
(1)在數據集之中,選擇一個元素作為”基準”(pivot)。
(2)所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。
(3)對”基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。
統計字符串”aaaabbbccccddfgh”中字母個數或統計最多字母數。
varstr = "aaaabbbccccddfgh"; varobj = {}; for(vari=0;istr.length;i++){ varv = str.charAt(i); if(obj[v]&obj[v].value == v){ obj[v].count = ++ obj[v].count; }else{ obj[v] = {}; obj[v].count = 1; obj[v].value = v; } } for(key inobj){ document.write(obj[key].value +'='+obj[key].count+' ');// a=4 b=3 c=4 d=2 f=1 g=1 h=1 }寫一個function,清除字符串前后的空格。(兼容所有瀏覽器)
functiontrim(str){ if(str&typeof str === "string"){ returnstr.replace(/(^s*)|(s*)$/g,"");//去除前后空白符 } }如何制作一個combo選項
combo選項就是可以手動輸入值,也可以選擇下拉列表值的選項。
思路:
①布局select和input,讓input覆蓋select,除了select的下拉圖標,以方便select選擇。
②編寫js,為select添加onchange事件,onchange時將input的value置成select選中的值。
這個網上有很多成品,大家可以自己試一下,下邊給出一個。
實現一個combo選項
總結
以上是生活随笔為你收集整理的javascript array添加图片_史上最全的web前端面试题汇总及答案JavaScript之二(二)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9d和6d钢化膜的区别
- 下一篇: Steam 喜加一:韩国 MMORPG