javascript
javascript面试题以及对所涉及到的知识点的总结
前言
這幾天將js方面的知識(shí)系統(tǒng)的回顧了一遍,但是當(dāng)嘗試去做一些面試題時(shí)覺得解決問題的能力以及效率還是有所欠缺,在這里特意記錄一下所做的面試題并總結(jié)所涉及到的相關(guān)知識(shí)點(diǎn)。
一、面試題、答案以及總結(jié)
1、截取字符串a(chǎn)bcdefg的efg
var str="abcdefg";方法一: str.substr(4,3);//第二個(gè)參數(shù)可選,如果在這里省略,截取的字符串也將延伸到最后 方法二:str.substring(4);//該方法有兩個(gè)參數(shù),第二個(gè)參數(shù)為可選,由于這種方法截取字符串時(shí)將不包括結(jié)束索引位置的字符,因此在此處省略了第二個(gè)參數(shù)總結(jié):截取字符串的方法
2、?判斷一個(gè)字符串中出現(xiàn)次數(shù)最多的字符,統(tǒng)計(jì)這個(gè)次數(shù)
var strobj = {};var str = "adsssweasxfccadddd";for (var i = 0; i < str.length; i++) {if (strobj[str.charAt(i)] != undefined) {strobj[str.charAt(i)] += 1;}else {strobj[str.charAt(i)] = 1;}} var MaxNum = 0;//出現(xiàn)的次數(shù)var c;//記錄出現(xiàn)次數(shù)最多的字符for (var s in strobj) {if (strobj[s] > MaxNum) {MaxNum = strobj[s];c = s;}}alert("出現(xiàn)次數(shù)最多的字符為:" + c + ",最大次數(shù)為:" + MaxNum);總結(jié):
(1)、字符串
js中字符串最常用的屬性就是length,它表示的是字符串中字符的個(gè)數(shù)。還有很多方法,比如可以通過charAt(索引)來訪問某個(gè)索引處的字符。
(2)、for in 循環(huán)
可以用來擴(kuò)列對(duì)象的屬性
(3)、自定義對(duì)象
通過字面量的方式來創(chuàng)建自定義對(duì)象:var obj={};
(4)、undefined
有一下幾種情況會(huì)返回undefined值:
- 使用未申明的變量
- 使用一個(gè)已經(jīng)聲明但沒有復(fù)制的變量
- 使用的對(duì)象不存在
3、規(guī)避javascript多人開發(fā)函數(shù)重名問題(還沒怎么用到過)
可以通過命名空間、封閉空間等來解決。
?
4、javascript面向?qū)ο笾欣^承實(shí)現(xiàn);
?
?
5、編寫一個(gè)方法 求一個(gè)字符串的字節(jié)長(zhǎng)度;
var str = "aa字符串";/*方法一:通過ASCII碼來實(shí)現(xiàn)var CLength=0;for (var i=0; i < str.length;i++){if(str.charCodeAt(i)>255){CLength++;//debugger;} }CLength=CLength+str.length;alert("\'" + str + "\'字符串的字節(jié)長(zhǎng)度為:" + CLength);*///方法二:通過正則表達(dá)式來判斷是否為漢字var CLength = 0;var re = /[\u4e00-\u9fa5]/;for (var i = 0; i < str.length; i++) {if (re.test(str.charAt(i))) {CLength++;//debugger; }}CLength = CLength+str.length;alert("\'" + str + "\'字符串的字節(jié)長(zhǎng)度為:" + CLength);總結(jié):
這里主要是考察了如何判斷字符是漢字,上面的代碼中列出了兩種方式:1、通過字符串的charCodeAt(索引)來獲取字符的ASCII碼從而來判斷是否是漢字;2、通過正則表達(dá)式方式來判斷;
?
6、編寫一個(gè)方法 去掉一個(gè)數(shù)組的重復(fù)元素
var Arr = [1, 2, 3, 1, 43, 12, 12, 1,3,5,'s','a'];var obj = {};//用于存儲(chǔ)數(shù)組Arr中沒有重復(fù)的值var res = [];//處理之后的數(shù)組var j = 0;//檢驗(yàn)該數(shù)組元素是否存在于obj中function Check(ArrValue) {if (obj[ArrValue] != undefined) {return true;}else return false;}//處理數(shù)組function ControlArr(Arr) {for (var i = 0; i < Arr.length; i++) {//將數(shù)組元素值拿到obj中驗(yàn)證if (!Check(Arr[i])) {obj[Arr[i]] = Arr[i];}}//debugger;for (var r in obj) {res[j] = r;j++;}return res;}alert(ControlArr(Arr));7、this關(guān)鍵字的用法?
8、js中的深淺克隆
9、javascript中的ajax請(qǐng)求??
10、 閉包
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/YanYongSong/p/5291110.html
總結(jié)
以上是生活随笔為你收集整理的javascript面试题以及对所涉及到的知识点的总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql中natural join和i
- 下一篇: php实现一个简单的四则运算计算器