1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          js面試題(JavaScript常見面試題和答案)

          來源:互聯網轉載 時間:2024-05-12 03:45:01

          問題1:Java和JavaScript有什么不同

          JavaJavaScript
          Java是一種OOP編程語言。JavaScript是一種OOP腳本語言。
          它創建在虛擬機或瀏覽器中運行的應用程序。代碼在瀏覽器或node環境上運行。
          需要編譯Java代碼。JS代碼都是文本的形式。

          問題2:什么 Javascript

          JavaScript 是一種輕量級的解釋型編程語言,具有面向對象的特性,允許各位在其他靜態HTML頁面中構建交互性。 該語言的通用核心已嵌入Netscape,Internet Explorer和其他Web瀏覽器中。

          問題3: JS 支持哪些數據類型

          JS 支持的數據類型:

           ● Undefined

           ● Null

           ● Boolean

           ● String

           ● Symbol

           ● Number

           ● Object

          問題4:JavaScript的特性是什么

          以下是JS的特性:

           ● JS 是一種輕量級,解釋性編程語言。

           ● 為了創建以網絡為中心的應用程序而設計。

           ● 補充和集成了 Java

           ● 補充和集成了 HTML

           ● 開放和跨平臺

          問題5:JavaScript是區分大小寫

          是的,JS是一種區分大小寫的語言。關鍵字、變量、函數名和任何其他標識符必須始終使用一致的大寫字母進行使用。

          問題6:JS 的優勢是什么

          以下使用JS的優點:

           ● 更少的服務器交互 - 在將頁面發送到服務器之前,可以驗證用戶輸入,節省了服務器流量,意味著服務器的負載更少

           ● 立即反饋 - 用戶不需要等待頁面重新加載來查看是否忘記輸入某些內容。

           ● 增強交互 - 在界面中,當用戶使用鼠標懸?;蛲ㄟ^鍵盤激活它們時會做出響應。

           ● 豐富的接口 - 可以使用JS包含拖放組件和滑塊等項,為網站提供豐富的界面。

          問題7:如何用JS創建對象

          JS賊支持對象概念,用如下方式創建即可:

          var emp = {name: "Daniel",age: 23};

          問題8:如何用JS創建數組

          JS 創建數組也很簡單:

          var x = [];var y = [1, 2, 3, 4, 5];

          問題9:JS 中的命名函數是什么以及如何定義:

          命名函數在定義后立即聲明名稱,可以使用function關鍵字定義:

          function named(){// write code here}

          問題10:是否可以將匿名函數分配給變量并將其作為參數傳遞給另一個函數

          可以。一個匿名函數可以分配給一個變量,它也可以作為參數傳遞給另一個函數。

          問題11:JS中的參數對象是什么&如何獲得傳遞給函數的參數類型

          JS 變量arguments表示傳遞給函數的參數。 使用typeof運算符,可以獲得傳遞給函數的參數類型。如下:

          function func(x){console.log(typeof x, arguments.length);}func(); //==> "undefined", 0func(7); //==> "number", 1func("1", "2", "3"); //==> "string", 3

          問題12:JS中變量的作用域是什么

          變量的作用域是程序中定義它的區域,JS變量只有兩個作用域:

           ● 全局變量 - 全局變量具有全局作用域,這意味著它在JS代碼中的任何位置都可見。

           ● 局部變量 - 局部變量僅在定義它的函數中可見,函數參數始終是該函數的本地參數。

          問題13:JS 中“this”運算符的用途是什么?

          this關鍵字引用它所屬的對象。 根據使用位置,它具有不同的值。 在方法中,這指的是所有者對象,而在函數中,這指的是全局對象。

          問題14:什么是回調

          回調函數是作為參數或選項傳遞給某個方法的普通JS函數。它是一個函數,在另一個函數完成執行后執行,因此稱為回調。在JS中,函數是對象,因此,函數可以接受函數作為參數,并且可以由其他函數返回。

          問題15:什么是閉包?舉個例子

          只要在某個內部作用域內訪問在當前作用域之外定義的變量,就會創建閉包。 它允許你從內部函數訪問外部函數的作用域。 在JS中,每次創建函數時都會創建閉包。 要使用閉包,只需在另一個函數內定義一個函數并暴露它。

          問題16:列出一些內置方法及其返回的值。

          內置方法返回值
          CharAt()它返回指定索引處的字符。
          concat()它連接兩個或多個字符串。
          forEach()它為數組中的每個元素調用一個函數。
          indexOf()它返回指定值第一次出現時調用字符串對象中的索引。
          pop()它從數組中刪除最后一個元素并返回該元素。
          push()它將一個或多個元素添加到數組的末尾,并返回數組的新長度。
          reverse()反轉數組元素的順序。

          問題17: JS中的變量命名約定是什么?

          在JS中命名變量時要遵循以下規則:

          1. 咱們不應該使用任何JS保留關鍵字作為變量名。例如,breakboolean變量名無效。
          2. JS 變量名不應該以數字(0-9)開頭。它們必須以字母或下劃線開頭。例如,123name是一個無效的變量名,但123namename123是一個有效的變量名。
          3. JS 變量名區分大小寫。例如,Testtest是兩個不同的變量。

          問題18:TypeOf 運算符是如何工作的

          typeof運算符用于獲取其操作數的數據類型。 操作數可以是文字或數據結構,例如變量,函數或對象。 它是一個一元運算符,放在它的單個操作數之前,可以是任何類型。 它的值是一個字符串,表示操作數的數據類型。

          問題19:如何使用 JS 創建 cookie

          創建cookie的最簡單方法是為document.cookie對象分配一個字符串值,如下所示:

          document.cookie = "key1 = value1; key2 = value2; expires = date";

          問題20:如何使用JS讀取cookie

          讀取cookie就像寫入cookie一樣簡單,因為document.cookie對象的值是cookie。

           ● document.cookie的值是由分號分隔的name=value對的列表,其中name是cookie的名稱,value是其字符串值。

           ● 可以使用split()方法將字符串分解為鍵和值。

          問題21:如何使用 JS 刪除 cookie

          如果要刪除cookie以便后續嘗試讀取cookie,則只需將過期日期設置為過去的時間。 咱們應該定義cookie路徑以確保刪除正確的cookie。 如果未指定路徑,某些瀏覽器將不允許咱們刪除cookie。

          問題22:Attribute 和Property之間有什么區別

           ● Attribute——提供關于元素的更多細節,如id、類型、值等。

           ● Property —— 分配給屬性的值,如type =“text”,value ='Name'等。

          問題23:列出在JS代碼中訪問HTML元素的不同方式

          下面是在JS代碼中訪問 html 元素的方法列表:

           ● getElementById(‘idname’): 按id名稱獲取元素

           ● getElementsByClass(‘classname’): 獲取具有給定類名的所有元素

           ● getElementsByTagName(‘tagname’): 獲取具有給定標記名稱的所有元素

           ● querySelector(): 此函數采用css樣式選擇器并返回第一個選定元素

          問題24:JS代碼在HTML文件中可以以多少種方式使用

          主要有三種:

           ● 行內

           ● 內部

           ● 外部

          行內方式:

          ...<input type="button" value="點擊有驚喜" onclick="javascript:alert('哈哈哈哈')">...

          內部方式:

          <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><script type="text/javascript">//聲明一個函數(整個文檔都可以使用)function surprise() {alert('恭喜你中了一百萬')/*彈出框*/}</script></head>。。。</html>

          外部方式:

          ...<!--很多html頁面都可以調用js4.js頁面--><script src="../../js/js4.js" type="text/javascript" charset="utf-8">...

          問題25:在JS中定義變量的方法有哪些

          在 JS 中聲明變量有三種方式:

           ● varvar 語句用于聲明一個變量,咱們可以選擇初始化該變量的值。例子:var a =10;變量聲明在代碼執行之前處理。

           ● const - 常量的值不能通過重新賦值來改變,并且不能重新聲明。

           ● let - 語句聲明一個塊級作用域的本地變量,并且可選的將其初始化為一個值。

          問題26:什么是類型化語言

          類型化語言中,值與值關聯,而不是與變量關聯,它有兩種類型:

          • 動態:在這種情況下,變量可以包含多種類型,如在JS中,變量可以取number, string 類型。
          • 靜態:在這種情況下,變量只能包含一種類型,就像在Java中聲明為string的變量只能包含一組字符,不能包含其他類型。

          問題27:Cookie 與 Local storage 與 Session storage 區別

          特性CookielocalStoragesessionStorage
          數據的生命期一般由服務器生成,可設置失效時間。如果在瀏覽器端生成Cookie,默認是關閉瀏覽器后失效除非被清除,否則永久保存僅在當前會話下有效,關閉頁面或瀏覽器后被清除
          存放數據大小4K左右一般為 5MB
          與服務器端通信每次都會攜帶在HTTP頭中,如果使用cookie保存過多數據會帶來性能問題僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信
          易用性需要程序員自己封裝,源生的Cookie接口不友好需要程序員自己封裝,源生的Cookie接口不友好 源生接口可以接受,亦可再次封裝來對Object和Array有更好的支持

          問題28: ‘==‘ 和 ‘===‘ 區別

          ==: 兩邊值類型不同的時候,要先進行類型轉換,再比較。
          ===:不做類型轉換,類型不同的一定不等。

          一言以蔽之:==先轉換類型再比較,===先判斷類型,如果不是同一類型直接為false。

          問題29:null 和 undefined 區別

          undefined是基本數據類型 表示未定義 缺少的意思。

          null是引用數據類型,是對象,表示空對象

          undefined是從null派生出來的 所以undefined==nulltrue

          問題 30:undeclared 和 undefined 區別?

          undeclared的變量是程序中不存在且未聲明的變量。 如果程序嘗試讀取未聲明變量的值,則會遇到運行時錯誤。undefined的變量是在程序中聲明但未賦予任何值的變量,如果程序試圖讀取未定義變量的值,則返回undefined的值。

          問題 31: 列出一些JS框架

          JS框架是用JavaScript編寫的應用程序框架,它與控制流中的JS庫不同,一些最常用的框架是:

           ● Vue

           ● Angular

           ● React

          問題 32: window 與 document 的區別:

          window:JS 的 window 是一個全局對象,它包含變量、函數、history、location。

          document:document也位于window之下,可以視為window的屬性。

          問題 33: innerHTML 和 innerText 的區別

          innerHTML:也就是從對象的起始位置到終止位置的全部內容,包括Html標簽。

          innerText:從起始位置到終止位置的內容, 但它去除Html標簽

          問題 34:JS中的事件冒泡是什么

          事件冒泡是HTML DOM API中事件傳播的一種方式,當一個事件發生在另一個元素中的一個元素中,并且兩個元素都注冊了該事件的句柄時。通過冒泡,事件首先由最內部的元素捕獲和處理,然后傳播到外部元素。執行從該事件開始,并轉到其父元素。然后執行傳遞給父元素,以此類推,直到body元素。

          問題 35:NaN 是什么

          NaN 即非數值(Not a Number),NaN 屬性用于引用特殊的非數字值,該屬性指定的并不是不合法的數字。

          NaN 屬性 與 Number.Nan 屬性相同。

          提示: 請使用 isNaN() 來判斷一個值是否是數字。原因是 NaN 與所有值都不相等,包括它自己。

          問題 36:JS的原始/對象類型如何在函數中傳遞?

          兩者之間的一個區別是,原始數據類型是通過值傳遞的,對象是通過引用傳遞的。

           ● 值傳遞:意味著創建原始文件的副本。把它想象成一對雙胞胎:他們出生的時候一模一樣,但是雙胞胎中的老大在戰爭中失去了一條腿,而老二卻沒有。

           ● 引用傳遞: 意味著創建原始文件的別名。當我媽媽叫沙雕的時候,雖然我的名字叫小智,但這并不是說我就突然就克隆了一個自己:我仍然是我,只是可以用不同名字來稱呼我而已。

          問題 37:如何在JS中將任意基的字符串轉換為整數

          parseInt(string, radix) 將一個字符串 string 轉換為 radix 進制的整數, radix 為介于2-36之間的數,如下:

          parseInt("4F", 16)

          問題 38:2+5+ '3'的結果是什么

          由于25是整數,它們將以數字形式相加。因為3是一個字符串,它將與 7 拼接,結果是73。

          問題 39:export 和 import 是什么

          importexport有助于咱們編寫模塊化JS代碼。 使用importexport,咱們可以將代碼拆分為多個文件,如下:

          //------ lib.js ------</span>export const sqrt = Math.sqrt;</span>export function square(x) {</span>return x * x;</span>}export function diag(x, y) {return sqrt(square(x) + square(y));} //------ main.js ------</span> { square, diag } from 'lib';console.log(square(5)); // 25console.log(diag(4, 3)); // 5

          問題40:JS中的“嚴格”模式是什么以及如何啟用?

          嚴格模式是在代碼中引入更好的錯誤檢查的一種方法。

           ● 當使用嚴格模式時,不能使用隱式聲明的變量,或為只讀屬性賦值,或向不可擴展的對象添加屬性。

           ● 可以通過在文件,程序或函數的開頭添加“use strict”來啟用嚴格模式

          問題41:JS 中的 prompt 框是什么

          提示框是允許用戶通過提供文本框輸入輸入的框。 prompt() 方法顯示一個對話框,提示訪問者輸入。 如果您希望用戶在輸入頁面之前輸入值,則通常會使用提示框。 彈出提示框時,用戶必須在輸入輸入值后單擊“確定”或“取消”才能繼續。

          問題42:下面代碼的輸出是什么?

          var Y = 1;if (eval(function f(){})){  y += typeof F;}console.log(y);

          打印1undefined。if條件語句使用eval求值,因此eval(function f(){})返回函數f(){}(為真)。因此,在if語句中,執行typeof f返回undefined,因為if語句代碼在運行時執行,而if條件中的語句在運行時計算。

          問題43:call 和 apply有什么區別

          callapply可以用來重新定義函數的執行環境,也就是this的指向;callapply都是為了改變某個函數運行時的context,即上下文而存在的,換句話說,就是為了改變函數體內部this的指向。

          call()調用一個對象的方法,用另一個對象替換當前對象,可以繼承另外一個對象的屬性,它的語法是:

          Function.call(obj[, param1[, param2[, [,...paramN]]]]);

          說明:call方法可以用來代替另一個對象調用一個方法,call方法可以將一個函數的對象上下文從初始的上下文改變為obj指定的新對象,如果沒有提供obj參數,那么Global對象被用于obj

          apply()call()方法一樣,只是參數列表不同,語法:

          Function.apply(obj[, argArray]);

          說明:如果argArray不是一個有效數組或不是arguments對象,那么將導致一個TypeError,如果沒有提供argArrayobj任何一個參數,那么Global對象將用作obj。

          問題44:如何在JS中清空數組

          有許多方法可以用來清空數組:

          方法一:

          arrayList = []

          上面的代碼將把變量arrayList設置為一個新的空數組。如果在其他任何地方都沒有對原始數組arrayList的引用,則建議這樣做,因為它實際上會創建一個新的空數組。咱們應該小心使用這種清空數組的方法,因為如果你從另一個變量引用了這個數組,那么原始的引用數組將保持不變。

          方法二:

          arrayList.length = 0;

          上面的代碼將通過將其length設置為0來清除現有數組。這種清空數組的方式還會更新指向原始數組的所有引用變量。 因此,當你想要更新指向arrayList的所有引用變量時,此方法很有用。

          方法三:

          arrayList.splice(0, arrayList.length);

          這處方法也行,當然這種清空數組的方法也將更新對原始數組的所有引用。

          方法四:

          while(arrayList.length){  arrayList.pop();}

          上面的實現也可以空數組,但通常不建議經常使用這種方式。

          問題45:以下代碼的輸出什么

          var output = (function(x){  delete x;  return x;})(0);console.log(output);

          打印 0。delete操作符用于從對象中刪除屬性。這里x不是一個對象,而是一個局部變量,刪除操作符不影響局部變量。

          問題46:以下代碼的輸出什么

          var X = { foo : 1}; var output = (function() {   delete X.foo;   return X.foo; } )(); console.log(output);

          輸出 undefined。delete操作符用于刪除對象的屬性。X是一個具有foo屬性的對象,由于它是一個自調用函數,所以咱們將從對象X中刪除foo屬性。這樣做之后,當咱們試圖引用一個被刪除的foo屬性時,結果是undefined。

          問題47:以下代碼的輸出什么

          var foo = function Bar(){  return 7;};typeof Bar();

          輸出將是引用錯誤。函數定義只能有一個引用變量作為其函數名。

          問題49:為什么要將JS源文件的全部內容包裝在一個函數中

          這是一種越來越普遍的做法,被許多流行的JS庫所采用。 這種技術圍繞文件的整個內容創建一個閉包,最重要的是,它可以創建一個私有命名空間,從而有助于避免不同JS模塊和庫之間潛在的名稱沖突。

          該技術的另一個特性是允許為全局變量提供一個簡單的別名,這在jQuery插件中經常使用。

          問題50:JS中的轉義字符是什么

          JS轉義字符使咱們能夠在不破壞應用程序的情況下編寫特殊字符。轉義字符(\)用于處理特殊字符,如單引號、雙引號、撇號和&號,在字符前放置反斜杠使其顯示。

          如:document.write("I am a \"good\" boy")

          關于JavaScript常見面試題和答案就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

          標簽:js面試題-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          銀行u盾丟了可以補辦嗎?u盾失可以補領。以工商銀行為例子: u盾資格證書遺失后,必須由本人帶上有效的身份證和開通電子銀行的銀行卡,到地區隨意服務網點拆換u盾資格證書并進行證書下載。1、u盾報失期內,如必須申請辦理小額付款、轉賬業務,可試著通過網上銀行、手機銀行等方式開通"短消息認證支付”后絞易;2、各地區不一樣自助機器使用業務有差別,實際作用及實際操作要以機器網頁頁面展示為標...

          德馬克指標是什么意思?托馬斯德馬克(德馬克)是道明系列指標的創始人。TD指標之間約有70種,其中一個應用最廣泛的是TD序列和TD組合。TD序列由價格反轉、TD結構、TD計數三部分組成。TD組合和TD序列基本類似,只是計數部分有些區別。相對來說,TD組合的計數條件有一定的差異。相對來說,TD組合的計數條件更為嚴格。TD趨勢線有兩種:一種是TD買入結構的TD趨勢阻力線;一種是TD賣出結構的TD趨勢支撐...

          (資料圖片僅供參考)關于神雕俠侶選擇什么職業好的知識大家了解嗎?以下就是小編整理的關于神雕俠侶選擇什么職業好的介紹,希望可以給到大家一些參考,一起來了解下吧!1、古墓派。優點:群體傷害較強。古墓派經典的攻擊技能有黯然銷魂掌和玉女心經。黯然銷魂掌是楊過自創的絕技,可以對多個敵人同時產生傷害。這個傷害是由內功來決定的。缺點:防御較低。2、丐幫。優點:單體攻擊力強。其中降龍十八掌中的飛龍在天就是丐幫的主...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>