1. 程式人生 > >前端面試題整理---JS基礎

前端面試題整理---JS基礎

move asto 小寫 ngs 應用 ron 地址 create bst

為了督促自己學習,整理了一下前端的面試題

JavaScript:

JavaScript 中如何監測一個變量是String類型?

typeof(obj)==="string";
typeof obj ==="string";
obj.constructor ===string

  JS中清除字符串空格的方法

方法一:使用正則匹配

// 去除所有的空格
var str1 = strings.replace(/\s*/g,"");
// 去掉兩頭的空格
var str2 = strings.replace(/(^\s*|\s*$)/g,"");
//去掉左邊空格
var str3 = strings.replace(/^\s*/,"");
// 去掉右邊空格
var str4 = strings.replace(/\s*$/,"");
實例
var strings = "  this is an apple  ";
// 去除所有的空格
var str1 = strings.replace(/\s*/g,"");
console.log(str1);
// 去掉兩頭的空格
var str2 = strings.replace(/(^\s*|\s*$)/g,"");
console.log(str2);
//去掉左邊空格
var str3 = strings.replace(/^\s*/,"");
console.log(str3);
// 去掉右邊空格
var str4 = strings.replace(/\s*$/,"");
console.log(str4)

  方法二:使用str.trim()的方法

使用具有局限性,只能去除兩頭的空格,使用trimLeft()、trimRight()分別都只能去除字符串兩端的空格

str = strings.trim();

  方法三:使用jQuery$.trim()

$.trim()函數會移除字符串開始和結尾處的所有換行符,空格(包括連續的空格)和制表符(tab)。如果這些空白字符在字符串中間時,它們將被保留,不會被移除

var str = $.trim(str);

 你如何獲取瀏覽器URL中查詢字符串中的參數?

  測試地址:http://www.runoob.com/jquery/misc-trim.html?chanelid=123&name=lilei&age=23

var url = ‘http://www.baidu.com?name=lilei&age=26&pwds=123456
unction showHref (holeHref){
    var args = holeHref.split(‘?‘);
    if(args[0] ==holeHref){
        return ""
    }
    var argArr = args[1].split(‘&‘);
    var objs = {};
    for(var i=0;i<argArr.length;i++){
        var arg = argArr[i].split(‘=‘);
        objs[arg[0]] = arg[1];
    }
    return objs
    // var argLastOne = argArr[argArr.length-1];
}
 var href  =showHref(url);
console.log(href[‘age‘]);

  JS字符操作字符串的方法:

concat() --將兩個或多個字符串拼接,返回新的字符串

  indexOf()--返回字符串中一個字符串出現的第一個位置,如果沒有,返回-1;

  charAt()---返回指定位置的字符;

  lastIndexOf()--返回字符串中一個字符最後一處出現的索引;若沒找到,返回-1;

  match()--檢查字符串是否符合一個正則表達式;

  substring()--返回字符串從開始位置,到結束位置之間的字符串;

  substr()--返回字符串的一個子字符串,傳入的參數是開始位置和長度為length的字符串;

  slice()--提取字符串的一部分,返回新的字符串;

  replace()--用來匹配查找一個正則表達式的字符串;

  split()--將一個字符串按照傳入參數分割成幾個字符串,並存入數組中

  length--返回字符串的長度,所謂的長度是包含字符的個數

  toLowerCase()--字符串的長度轉成小寫

  toUpperCase()--字符串的長度轉成大寫

var str1 = ‘this is an apple‘;
var str2 = ‘ this is a pen‘;
var str3 = ‘THIS IS AN APPLEPEN‘;
// 1、concat()方法
console.log(str1.concat(str2));//this is an apple this is a pen
// 2、indexOf()的方法
console.log(str1.indexOf(‘i‘));//2---第一次出現i的位置
// 3、charAt()
console.log(str1.charAt(3));//s--返回在3位置處的字符
//4、lastIndexOf()
console.log(str1.lastIndexOf(‘p‘));//13---若不傳參,則返回-1;否則返回左後一次出現參數的位置
// 5、match()
var reg = /[t|i]/ig;
console.log(str1.match(reg));//[ ‘t‘, ‘i‘, ‘i‘ ]--如果返回null,說明沒有符合正則的字符;
// 6、substr()
console.log(str1.substr(2,6));//is is 返回在2位置到6位置處的字符串,包含空格
// 7、slice()
console.log(str1.slice(2,6));//is i 返回在2--6位置之間的字符,含頭不含尾
//8、substring()
console.log(str1.substring(2,6));//is i 返回在2--6位置之間的字符,含頭不含尾
// 9、split()
console.log(str1.split(‘ ‘));//[ ‘this‘, ‘is‘, ‘an‘, ‘apple‘ ]將字符串按照參數的形式劃分成子字符串,返回到數組中
//10、length()
console.log(str2.length);//14
// 11、toLowerCase()
console.log(str3.toLowerCase());//this is an applepen
// 12、toUpperCase()
console.log(str1.toUpperCase());//THIS IS AN APPLE

 怎樣添加、創建、移動、復制、查找節點 

1、創建節點

  createDocumentFragment()---創建文檔片段

   createElement()--創建一個具體的元素

   createTextNode()--創建文本節點

2、添加、移除、替換、插入

  appendChild()//添加

  removeChild()//移除

  replaceChild()//替換

  insertBefore()//插入

3、查找

getElementById()--根據id屬性查找DOM元素

  getElementByName()--根據name屬性查找DOM元素

  getElementByTagName()--根據標簽名查找DOM屬性

寫出3個使用this的典型應用  

// 1、this在HTML中的應用
 <input type="button" onclick="showInfo(this)" value="點擊一下">
// this--指的是該元素
// 2、構造函數使用
function userThis (name,color){
    this.name = name;
    this.color = color;
}
//事件發生時
var btn = document.getElementById(‘button‘);
 btn.click(function () {
     alert(this.value)
 });
//在apply()/call()求數組中的最值
var numbers = [5,24,64,332,568,97];
var maxNumbers = Math.max.apply(this,numbers);
console.log(maxNumbers);//568
maxNumbers = Math.max.call(this,5,24,64,332,568,97);
console.log(maxNumbers);

   比較typeof與instanceof?

相同點:JavaScript 中 typeof 和instanceof 常用來判斷一個,變量是否為空,或者是什麽類型的

typeof的定義和用法:返回值是一個字符串,用來說明變量的數據類型

返回值:

①:typeof 一般只能返回如下幾個結果:number,boolean,string,function,object,undefined

②:typeof:來獲取一個變量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因為如果 a 不存在(未聲明)則會出錯。

③對於Array,Null等特殊對象使用typeof一律返回object,這是該函數的局限性

instanceof定義和用法:instanceof 用於判斷一個變量是否屬於某個對象的實例

var a = ‘this is a charCode‘;
console.log(typeof a);//string
var b = 0;
console.log(typeof b);//number
var c = true;
console.log(typeof c);//boolean
var d = undefined;
console.log(typeof d);//undefined
var e = [1,2,3,3];
console.log(typeof e);//object
var f = function(){
    alert(‘this‘);
};
console.log(typeof f);//function
var g = {};
g.name = ‘jack‘;
console.log(typeof g);//object
var h = null;
console.log(typeof h);//object

console.log(a instanceof Object)//false
console.log(g instanceof Array)//false
console.log(e instanceof Array)//true
console.log(e instanceof Object)//true
數組也屬於對象,數組是Object的子類

  

前端面試題整理---JS基礎