摘要:又到一年春招季,們又要奔波于一場(chǎng)又一場(chǎng)的面試。今天就先來小小總結(jié)一下方面的知識(shí)點(diǎn),方便你我他。在發(fā)送請(qǐng)求前加上。在后面加上時(shí)間搓。這樣頁面的所有都會(huì)執(zhí)行這條語句就是不需要保存緩存記錄。如何解決跨域問題服務(wù)器上設(shè)置代理頁面
js基本數(shù)據(jù)類型
Undefined、Null、Boolean、Number、String ECMAScript2015新增了Symbol(創(chuàng)建后獨(dú)一無二的數(shù)據(jù)類型)
js的內(nèi)置對(duì)象
數(shù)據(jù)封裝對(duì)象:Object,Array,Boolean,Number,String 其他對(duì)象:Function,Arguments,Math,Date,RegExp,Error
js基本規(guī)范
1.不要在同一行聲明多個(gè)變量 2.請(qǐng)使用===/!==來比較Boolean或者數(shù)值 3.生命數(shù)組變量時(shí),盡量使用[]代替new Array 4.拒絕全局函數(shù) 5.Switch語句必須帶有default分支
js原型,原型鏈及其特點(diǎn)
每個(gè)對(duì)象都會(huì)有一個(gè)內(nèi)部初始化的屬性,就是原型(prototype),當(dāng)我們尋找一個(gè)對(duì)象的屬性,如果內(nèi)部屬性本身不存在,就到對(duì)象的原型里面去找,這個(gè)原型又會(huì)有自己的原型,就這樣一步步地找下去,這就是所謂的原型鏈。
Javascript有幾種類型的值?及關(guān)于他們的內(nèi)存圖
棧:原始數(shù)據(jù)類型(基本數(shù)據(jù)類型) 堆:引用數(shù)據(jù)類型(對(duì)象,數(shù)組,函數(shù)) 兩種類型的區(qū)別:儲(chǔ)存的位置不同
將字符串轉(zhuǎn)換為數(shù)字?
1.‘12.3b’ parseFloat("12.3b");解析成浮點(diǎn)數(shù) 2."12b" parseInt("12b");解析成整數(shù)
如何將浮點(diǎn)數(shù)小數(shù)點(diǎn)左邊的每三位添加一個(gè)逗號(hào)
function commafy(num){ return num && num .toString() .replace(/(d)(?=(d{3})+./g,function($1, $2){ return $2 + ","; }); }
如何實(shí)現(xiàn)數(shù)組的隨機(jī)排序?var arr = [1,2,3,4,5,6,7,8]
方法一 function RandomSort(arr){ for (var i = 0,len = arr.length;i < len;i++){ var rand = parseInt(Math.random() * len); var a; a = arr[rand]; arr[rand] = arr[i]; arr[i] = a; } return arr; }
方法二 function RandomSort2(arr){ var a = []; while(arr.length > 0){ var rand = parseInt(Math.random() * arr.length); a.push(arr[rand]); arr.splice(rand,1); } return a; }
方法三 function RandomSort3(arr){ function sortBy(){ return Math.random() - 0.5; } arr.sort(sortBy()); }
Javascript如何實(shí)現(xiàn)繼承?
1.構(gòu)造繼承
2.原型繼承
3.實(shí)力繼承
4.拷貝繼承
前兩種比較簡(jiǎn)單,建議用前兩種的組合方式
1.構(gòu)造函數(shù)實(shí)現(xiàn)繼承就是借助call或者apply把父類中的函數(shù)通過this指復(fù)制到子類創(chuàng)建的實(shí)例中。
function Parent() { this.colors = ["black","white"]; } function Child() { Parent.call(this); } var child1 = new Child(); alert(child1.colors);//"black,white"
2.原型函數(shù)實(shí)現(xiàn)繼承
function Parent(){ this.name = "liuwen"; } function Child(){ this.age = 28; } Child.prototype = new Parent();//繼承了Parent,通過原型 var demo = new Child(); alert(demo.age); alert(demo.name);//得到被繼承的屬性
javascript創(chuàng)建對(duì)象的幾種方法
1.使用對(duì)象字面量
var Cat = {};//JSON Cat.name="kity";//添加屬性并賦值 Cat.age=2; Cat.sayHello=function(){ alert("hello "+Cat.name+",今年"+Cat["age"]+"歲了");//可以使用“.”的方式訪問屬性,也可以使用HashMap的方式訪問 } Cat.sayHello();//調(diào)用對(duì)象的(方法)函數(shù)
2.用function來模擬無參的構(gòu)造函數(shù)
function Person(){ } var personOne=new Person();//定義一個(gè)function,如果有new關(guān)鍵字去"實(shí)例化",那么該function可以看作是一個(gè)類 personOne.name="liuwen"; personOne.hobby="coding"; personOne.work=function(){ alert(personOne.name+" is coding now..."); } personOne.work();
3.用function來模擬有參構(gòu)造函數(shù)(拓展性強(qiáng),推薦使用)
function Pet(name,age,hobby){ this.name=name;//this作用域:當(dāng)前對(duì)象 this.age=age; this.hobby=hobby; this.eat=function(){ alert("我叫"+this.name+",我喜歡"+this.hobby+",也是個(gè)吃貨"); } } var maidou =new Pet("麥兜",5,"睡覺");//實(shí)例化/創(chuàng)建對(duì)象 maidou.eat();//調(diào)用eat方法(函數(shù))
4.用工廠模式來創(chuàng)建(內(nèi)置對(duì)象Object)
var liuWen = new Object(); liuWen.name = "劉雯"; liuWen.age = 21; liuWen.work = function() { alert("i am" + liuWen.name); } liuWen.work();
5.用原型方式來創(chuàng)建
function Dog(){ } Dog.prototype.name="旺財(cái)"; Dog.prototype.eat=function(){ alert(this.name+"是個(gè)吃貨"); } var liuwen =new Dog(); liuwen.eat();
6.用混合模式創(chuàng)建
function Car(name,price){ this.name=name; this.price=price; } Car.prototype.sell=function(){ alert("我是"+this.name+",我現(xiàn)在賣"+this.price+"萬元"); } var camry =new Car("liuwen",27); camry.sell();
this的理解
this指的是函數(shù)的直接調(diào)用者
this指的是new出來的實(shí)例對(duì)象
this指的是事件中觸發(fā)事件的對(duì)象
特殊的,在IE的attachEvent中,this總是指全局對(duì)象window
什么是window對(duì)象?什么是document對(duì)象?
window指的是瀏覽器窗口;document是文檔(html),屬于window的一個(gè)屬性。
null和undefined的區(qū)別
null是一個(gè)空值,表示一個(gè)對(duì)象為空值(我是空的) undefined表示一個(gè)聲明過的變量沒有賦予值(不知道我是誰) typeOf undefined;//"undefined" typeOf null; //"object" 區(qū)別null和undefined用===;
事件是什么?火狐和IE事件機(jī)制的區(qū)別?以及如何阻止冒泡事件
事件是在網(wǎng)頁中的某個(gè)操作,類似于(點(diǎn)擊,鍵盤)
IE是事件冒泡,火狐事件捕獲,事件冒泡都支持(事件冒泡是由子節(jié)點(diǎn)到父節(jié)點(diǎn)層層向外,捕獲剛好相反);
阻止冒泡事件 event.stopPropagation();
什么是閉包?為什么要用它
閉包就是有權(quán)訪問另一個(gè)函數(shù)作用域的函數(shù),簡(jiǎn)單來做就是在一個(gè)函數(shù)的內(nèi)部創(chuàng)建另外一個(gè)函數(shù),通過這個(gè)內(nèi)部函數(shù)訪問外部函數(shù)的局部變量,將外部函數(shù)內(nèi)部的方法變量傳遞到外部。 閉包的特性: 1. 內(nèi)部函數(shù)有權(quán)訪問外部函數(shù)的作用域,變量及函數(shù) 2. 函數(shù)內(nèi)再嵌套函數(shù) 3. 變量和函數(shù)不會(huì)被垃圾回收制回收
//li節(jié)點(diǎn)的onclick事件都能正確的彈出當(dāng)前被點(diǎn)擊的li索引
Javascript中,有一個(gè)函數(shù),執(zhí)行時(shí)對(duì)象查找時(shí),永遠(yuǎn)不會(huì)去查找原型,這個(gè)函數(shù)是?
hasOwnProperty javascript的hasOwnProperty返回的是一個(gè)布爾值,它可以檢測(cè)到這個(gè)對(duì)象本身具有屬性,不能檢測(cè)到原型鏈上。 object.hasOwnProperty(proName) 其中參數(shù)object是必選項(xiàng)。一個(gè)對(duì)象的實(shí)例。 proName是必選項(xiàng)。一個(gè)屬性名稱的字符串值。
JSON的了解
JSON是javascript的一個(gè)子集,它是輕量級(jí),簡(jiǎn)單,易操作的數(shù)據(jù)交換格式。 1. 將JSON字符串轉(zhuǎn)化為JSON對(duì)象; var obj =eval("("+ str +")"); var obj = str.parseJSON(); var obj = JSON.parse(str); 2. JSON對(duì)象轉(zhuǎn)換為JSON字符串: var str=obj.toJSONString(); var str=JSON.stringify(obj);
js延遲加載
defer和async,動(dòng)態(tài)創(chuàng)建dom(最常用),按需異步載入js
Ajax是什么?如何創(chuàng)建Ajax?
向服務(wù)器發(fā)送請(qǐng)求的時(shí)候我們不必等待,可以同時(shí)做其他事情,頁面也不會(huì)整頁刷新,提高用戶效率。 (1)創(chuàng)建XMLHttpRequest對(duì)象,也就是創(chuàng)建一個(gè)異步調(diào)用對(duì)象 (2)創(chuàng)建一個(gè)新的HTTP請(qǐng)求,并指定該HTTP請(qǐng)求的方法、URL及驗(yàn)證信息 (3)設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的函數(shù) (4)發(fā)送HTTP請(qǐng)求 (5)獲取異步調(diào)用返回的數(shù)據(jù) (6)使用JavaScript和DOM實(shí)現(xiàn)局部刷新
Ajax 解決瀏覽器緩存問題?
1、在ajax發(fā)送請(qǐng)求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。 2、在ajax發(fā)送請(qǐng)求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。 3、在URL后面加上一個(gè)隨機(jī)數(shù): "fresh=" + Math.random();。 4、在URL后面加上時(shí)間搓:"nowtime=" + new Date().getTime();。 5、如果是使用jQuery,直接這樣就可以了 $.ajaxSetup({cache:false})。這樣頁面的所有ajax都會(huì)執(zhí)行這條語句就是不需要保存緩存記錄。
如何解決跨域問題?
jsonp、 iframe、window.name、window.postMessage、服務(wù)器上設(shè)置代理頁面
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81919.html
摘要:一些知識(shí)點(diǎn)有哪些方法方法前端從入門菜鳥到實(shí)踐老司機(jī)所需要的資料與指南合集前端掘金前端從入門菜鳥到實(shí)踐老司機(jī)所需要的資料與指南合集歸屬于筆者的前端入門與最佳實(shí)踐。 工欲善其事必先利其器-前端實(shí)習(xí)簡(jiǎn)歷篇 - 掘金 有幸認(rèn)識(shí)很多在大廠工作的學(xué)長(zhǎng),在春招正式開始前為我提供很多內(nèi)部推薦的機(jī)會(huì),非常感謝他們對(duì)我的幫助?,F(xiàn)在就要去北京了,對(duì)第一份正式的實(shí)習(xí)工作也充滿期待,也希望把自己遇到的一些問題和...
摘要:今天同學(xué)去面試,做了兩道面試題全部做錯(cuò)了,發(fā)過來給道典型的面試題前端掘金在界中,開發(fā)人員的需求量一直居高不下。 排序算法 -- JavaScript 標(biāo)準(zhǔn)參考教程(alpha) - 前端 - 掘金來自《JavaScript 標(biāo)準(zhǔn)參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡(jiǎn)介 算法實(shí)現(xiàn) 選擇排序 簡(jiǎn)介 算法實(shí)現(xiàn) ... 圖例詳解那道 setTimeout 與循環(huán)閉包的經(jīng)典面...
摘要:有談?wù)劽嬖嚺c面試題對(duì)于前端面試的一些看法。動(dòng)態(tài)規(guī)劃算法的思想及實(shí)現(xiàn)方法幫大家理清動(dòng)態(tài)規(guī)劃的解決思路以及原理方法前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個(gè)方面。極客學(xué)院前端練習(xí)題道練習(xí)題,面試季練練手。 由數(shù)據(jù)綁定和排序引入的幾個(gè) JavaScript 知識(shí)點(diǎn) 在 JavaScript 的數(shù)據(jù)綁定和做簡(jiǎn)單的表格排序中遇到的幾個(gè)知識(shí)點(diǎn) [[JS 基礎(chǔ)...
摘要:難怪超過三分之一的開發(fā)人員工作需要一些知識(shí)。但是隨著行業(yè)的飽和,初中級(jí)前端就業(yè)形勢(shì)不容樂觀。整個(gè)系列的文章大概有篇左右,從我是如何成為一個(gè)前端工程師,到各種前端框架的知識(shí)。 為什么 call 比 apply 快? 這是一個(gè)非常有意思的問題。 作者會(huì)在參數(shù)為3個(gè)(包含3)以內(nèi)時(shí),優(yōu)先使用 call 方法進(jìn)行事件的處理。而當(dāng)參數(shù)過多(多余3個(gè))時(shí),才考慮使用 apply 方法。 這個(gè)的原因...
摘要:難怪超過三分之一的開發(fā)人員工作需要一些知識(shí)。但是隨著行業(yè)的飽和,初中級(jí)前端就業(yè)形勢(shì)不容樂觀。整個(gè)系列的文章大概有篇左右,從我是如何成為一個(gè)前端工程師,到各種前端框架的知識(shí)。 為什么 call 比 apply 快? 這是一個(gè)非常有意思的問題。 作者會(huì)在參數(shù)為3個(gè)(包含3)以內(nèi)時(shí),優(yōu)先使用 call 方法進(jìn)行事件的處理。而當(dāng)參數(shù)過多(多余3個(gè))時(shí),才考慮使用 apply 方法。 這個(gè)的原因...
摘要:上周末看這篇文章時(shí),偶有靈光,所以,分享出來給大家一起看看前端面試四月二十家前端面試題分享請(qǐng)各位讀者添加一下作者的微信公眾號(hào),以后有新的文章,將在微信公眾號(hào)直接推送給各位,非常感謝。 前端切圖神器 avocode 有了這個(gè)神器,切圖再也腰不酸,腿不疼了。 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果讀完本文還不懂,...
閱讀 3254·2021-11-12 10:36
閱讀 1344·2019-08-30 15:56
閱讀 2473·2019-08-30 11:26
閱讀 580·2019-08-29 13:00
閱讀 3635·2019-08-28 18:08
閱讀 2775·2019-08-26 17:18
閱讀 1930·2019-08-26 13:26
閱讀 2459·2019-08-26 11:39