javascript
JavaScript-- 基础知识面试题
1.JavaScript語言特點
1.弱類型,數據類型由數據的值決定
2.解釋性腳本語言--解釋器是JS引擎 是瀏覽器的一部分
3.運行在客戶端瀏覽器上
4.有事件驅動機制(按下鼠標,移動窗口等)
5.與操作系統無關,跨平臺語言
2.盒子模型
標準盒子模型:左右margin+左右padding+左右border+width
IE盒子模型:左右margin+width(包括padding和border)
3.CSS Sprite 是一種網頁圖片應用處理技術,將一個頁面需要用到的圖片整合成一張或少張圖片 以此來減少網頁的HTTP請求,提高性能,這是它最大的優點
使用方法 設置其為background-img:url(),設置其定位:background-position:x,y
它的優點:減少網頁的http請求 提升性能
減少了圖片的字節,多張圖片合成一張圖片的字節小于多張圖片的總和
減少了命名困擾,只需對一張集合的圖片命名,提高制作效率
更換風格方便,只需在一張或少張圖片上修改圖片的顏色或樣式
它的缺點:合成麻煩
4.link和@import的區別
1.link屬于HTML標簽,而import是css提供的
2.頁面加載時,link會被同事加載,而@import引用的css樣式會后加載
3.link無兼容問題,而import只在IE5以上才能被識別到
4.link的權重高于import
5.CSS中可以繼承的屬性有:font-size、color
5.在原型鏈上對數組去重
var a = 10;
function a(){
}
console.log(typeof a);
Array.prototype.unique1 = function (arr) {
var n = []; //一個新的臨時數組
for (var i = 0; i < this.length; i++) //遍歷當前數組
{
//如果當前數組的第i已經保存進了臨時數組,那么跳過,
//否則把當前項push到臨時數組里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
var arr = [2,5,8,7,4,9,5,6,1,2,5];
console.log(arr.unique1());
6.關于原型
function A(x){
this.x= x;
}
A.prototype.x = 1;
function B(x){
this.x= x;
}
B.prototype = new A();
var a = new A(2);
var b = new B();
console.log(a.x,b.x);//2 undefined
B的原型由A的構造函數創建 在A構造函數中 x這個屬性聲明且復制為undefined,當執行b.x 時先在對象中尋找x屬性值 若不存在則去原型中尋找
7.關于原型
var A = {n:4399};
var B= function(){this.n = 9999};
var C = function(){var n = 8888};
// 將B和C的原型都設置為A對象
B.prototype =A;
C.prototype = A;
var b = new B();
var c = new C();
// 對象A的屬性n++ n=4400
A.n++;
// 這是輸出b.n 會先去自己的對象中查找屬性 找到n=9999
console.log(b.n);
console.log(c.n);//對象沒有屬性 去原型中查找 n=4400
8.用for in 遍歷對象屬性時不僅遍歷對象本身的屬性和方法,同時會遍歷原型鏈上的屬性和方法
Object.prototype.bar = 1;
var foo = {moo : 2};
for(var i in foo){
console.log(i);
}
9.函數執行后變量無返回值
var x = 1, y = z = 0;
function add(n) {
??? n = n+1;
}
y = add(x);//執行add 但函數并未return返回值,此時變量會被賦值為undefined
function add(n) {
??? n = n + 3;
}
z = add(x);//與y同理
10.下列代碼的輸出結果
alert(typeof(null)); ?//object
alert(typeof(undefined)); //undefined
alert(typeof(NaN)); ?//number
alert(NaN==undefined); //false NaN與任何數據類型比較結果都為false
alert(NaN==NaN); //false
var str="123abc";
alert(typeof(str++)); //number 會對str進行隱士轉換為Number 但是轉換失敗 所以類型為number 值為NaN
alert(str);//NaN
?
轉載于:https://www.cnblogs.com/blogzzy/p/11412079.html
總結
以上是生活随笔為你收集整理的JavaScript-- 基础知识面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【经验】软件测试用例设计之错误推测法
- 下一篇: 用阳光心态去实现快乐工作