摘要:又到一年春招季,們又要奔波于一場又一場的面試。今天就先來小小總結一下方面的知識點,方便你我他。在發送請求前加上。在后面加上時間搓。這樣頁面的所有都會執行這條語句就是不需要保存緩存記錄。如何解決跨域問題服務器上設置代理頁面
js基本數據類型
Undefined、Null、Boolean、Number、String ECMAScript2015新增了Symbol(創建后獨一無二的數據類型)
js的內置對象
數據封裝對象:Object,Array,Boolean,Number,String 其他對象:Function,Arguments,Math,Date,RegExp,Error
js基本規范
1.不要在同一行聲明多個變量 2.請使用===/!==來比較Boolean或者數值 3.生命數組變量時,盡量使用[]代替new Array 4.拒絕全局函數 5.Switch語句必須帶有default分支
js原型,原型鏈及其特點
每個對象都會有一個內部初始化的屬性,就是原型(prototype),當我們尋找一個對象的屬性,如果內部屬性本身不存在,就到對象的原型里面去找,這個原型又會有自己的原型,就這樣一步步地找下去,這就是所謂的原型鏈。
Javascript有幾種類型的值?及關于他們的內存圖
棧:原始數據類型(基本數據類型) 堆:引用數據類型(對象,數組,函數) 兩種類型的區別:儲存的位置不同
將字符串轉換為數字?
1.‘12.3b’ parseFloat("12.3b");解析成浮點數 2."12b" parseInt("12b");解析成整數
如何將浮點數小數點左邊的每三位添加一個逗號
function commafy(num){ return num && num .toString() .replace(/(d)(?=(d{3})+./g,function($1, $2){ return $2 + ","; }); }
如何實現數組的隨機排序?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如何實現繼承?
1.構造繼承
2.原型繼承
3.實力繼承
4.拷貝繼承
前兩種比較簡單,建議用前兩種的組合方式
1.構造函數實現繼承就是借助call或者apply把父類中的函數通過this指復制到子類創建的實例中。
function Parent() { this.colors = ["black","white"]; } function Child() { Parent.call(this); } var child1 = new Child(); alert(child1.colors);//"black,white"
2.原型函數實現繼承
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創建對象的幾種方法
1.使用對象字面量
var Cat = {};//JSON Cat.name="kity";//添加屬性并賦值 Cat.age=2; Cat.sayHello=function(){ alert("hello "+Cat.name+",今年"+Cat["age"]+"歲了");//可以使用“.”的方式訪問屬性,也可以使用HashMap的方式訪問 } Cat.sayHello();//調用對象的(方法)函數
2.用function來模擬無參的構造函數
function Person(){ } var personOne=new Person();//定義一個function,如果有new關鍵字去"實例化",那么該function可以看作是一個類 personOne.name="liuwen"; personOne.hobby="coding"; personOne.work=function(){ alert(personOne.name+" is coding now..."); } personOne.work();
3.用function來模擬有參構造函數(拓展性強,推薦使用)
function Pet(name,age,hobby){ this.name=name;//this作用域:當前對象 this.age=age; this.hobby=hobby; this.eat=function(){ alert("我叫"+this.name+",我喜歡"+this.hobby+",也是個吃貨"); } } var maidou =new Pet("麥兜",5,"睡覺");//實例化/創建對象 maidou.eat();//調用eat方法(函數)
4.用工廠模式來創建(內置對象Object)
var liuWen = new Object(); liuWen.name = "劉雯"; liuWen.age = 21; liuWen.work = function() { alert("i am" + liuWen.name); } liuWen.work();
5.用原型方式來創建
function Dog(){ } Dog.prototype.name="旺財"; Dog.prototype.eat=function(){ alert(this.name+"是個吃貨"); } var liuwen =new Dog(); liuwen.eat();
6.用混合模式創建
function Car(name,price){ this.name=name; this.price=price; } Car.prototype.sell=function(){ alert("我是"+this.name+",我現在賣"+this.price+"萬元"); } var camry =new Car("liuwen",27); camry.sell();
this的理解
this指的是函數的直接調用者
this指的是new出來的實例對象
this指的是事件中觸發事件的對象
特殊的,在IE的attachEvent中,this總是指全局對象window
什么是window對象?什么是document對象?
window指的是瀏覽器窗口;document是文檔(html),屬于window的一個屬性。
null和undefined的區別
null是一個空值,表示一個對象為空值(我是空的) undefined表示一個聲明過的變量沒有賦予值(不知道我是誰) typeOf undefined;//"undefined" typeOf null; //"object" 區別null和undefined用===;
事件是什么?火狐和IE事件機制的區別?以及如何阻止冒泡事件
事件是在網頁中的某個操作,類似于(點擊,鍵盤)
IE是事件冒泡,火狐事件捕獲,事件冒泡都支持(事件冒泡是由子節點到父節點層層向外,捕獲剛好相反);
阻止冒泡事件 event.stopPropagation();
什么是閉包?為什么要用它
閉包就是有權訪問另一個函數作用域的函數,簡單來做就是在一個函數的內部創建另外一個函數,通過這個內部函數訪問外部函數的局部變量,將外部函數內部的方法變量傳遞到外部。 閉包的特性: 1. 內部函數有權訪問外部函數的作用域,變量及函數 2. 函數內再嵌套函數 3. 變量和函數不會被垃圾回收制回收
//li節點的onclick事件都能正確的彈出當前被點擊的li索引
Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?
hasOwnProperty javascript的hasOwnProperty返回的是一個布爾值,它可以檢測到這個對象本身具有屬性,不能檢測到原型鏈上。 object.hasOwnProperty(proName) 其中參數object是必選項。一個對象的實例。 proName是必選項。一個屬性名稱的字符串值。
JSON的了解
JSON是javascript的一個子集,它是輕量級,簡單,易操作的數據交換格式。 1. 將JSON字符串轉化為JSON對象; var obj =eval("("+ str +")"); var obj = str.parseJSON(); var obj = JSON.parse(str); 2. JSON對象轉換為JSON字符串: var str=obj.toJSONString(); var str=JSON.stringify(obj);
js延遲加載
defer和async,動態創建dom(最常用),按需異步載入js
Ajax是什么?如何創建Ajax?
向服務器發送請求的時候我們不必等待,可以同時做其他事情,頁面也不會整頁刷新,提高用戶效率。 (1)創建XMLHttpRequest對象,也就是創建一個異步調用對象 (2)創建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息 (3)設置響應HTTP請求狀態變化的函數 (4)發送HTTP請求 (5)獲取異步調用返回的數據 (6)使用JavaScript和DOM實現局部刷新
Ajax 解決瀏覽器緩存問題?
1、在ajax發送請求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。 2、在ajax發送請求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。 3、在URL后面加上一個隨機數: "fresh=" + Math.random();。 4、在URL后面加上時間搓:"nowtime=" + new Date().getTime();。 5、如果是使用jQuery,直接這樣就可以了 $.ajaxSetup({cache:false})。這樣頁面的所有ajax都會執行這條語句就是不需要保存緩存記錄。
如何解決跨域問題?
jsonp、 iframe、window.name、window.postMessage、服務器上設置代理頁面
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81919.html
摘要:一些知識點有哪些方法方法前端從入門菜鳥到實踐老司機所需要的資料與指南合集前端掘金前端從入門菜鳥到實踐老司機所需要的資料與指南合集歸屬于筆者的前端入門與最佳實踐。 工欲善其事必先利其器-前端實習簡歷篇 - 掘金 有幸認識很多在大廠工作的學長,在春招正式開始前為我提供很多內部推薦的機會,非常感謝他們對我的幫助。現在就要去北京了,對第一份正式的實習工作也充滿期待,也希望把自己遇到的一些問題和...
摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...
閱讀 3209·2021-11-12 10:36
閱讀 1258·2019-08-30 15:56
閱讀 2444·2019-08-30 11:26
閱讀 551·2019-08-29 13:00
閱讀 3609·2019-08-28 18:08
閱讀 2749·2019-08-26 17:18
閱讀 1893·2019-08-26 13:26
閱讀 2432·2019-08-26 11:39