top 45 javascript interview questions with detailed answers
すべてのJavaScript開発者向けの詳細な回答を含む最もよくある基本および高度なJavaScriptインタビューの質問。
面接の準備をしている場合、参考のために最もよくあるJS面接の質問と回答を以下に示します。
技術面接中に遭遇する可能性のある質問を紹介できるように、同じように設計されています。
探検しよう!
VisualStudioチームサービスとは
JavaScriptについて
JavaScriptは高水準プログラミング言語であり、おそらく現在世界で最も使用されているプログラミング言語の1つです。 Webブラウザやサーバーのプログラミングにも使用できます。
JavaScriptの重要性を理解するには、ブラウザでJavaScriptを無効にして、そこにWebページをロードしてみてください。これらのWebページは正しく機能しません。それらの多くのコンテンツは誤動作する可能性があります。最近のほとんどすべてのブラウザは、JavaScript、CSS、およびHTMLの組み合わせを使用しています。
JavaScriptはインタプリタプログラミング言語です。インタプリタは、Google Chrome、Microsoft Internet Explorerなどのブラウザに組み込まれています。そのため、そのコードはブラウザのJavaScriptエンジンで処理できます。
JavaScriptは1995年12月に登場し、当初はLiveScriptと呼ばれていましたが、マーケティング上の理由からすぐに名前が変更されました。似ているが完全に異なる言語である「Java」と混同しないでください。
最もよくあるJavaScriptインタビューの質問
Q#1)JavaScriptとは何ですか?
回答: JavaScriptは、Netscapeによって開発されたスクリプト言語です。 Webブラウザやサーバーのプログラミングにも使用できます。この言語の美しさであるウェブページのコンテンツを動的に更新することができます。
Q#2)外部JavaScriptを使用する利点は何ですか?
回答: コードで外部JavaScriptを使用すると、多くの利点があります。
これらは以下のとおりです。
- コードの分離が行われます。
- コードの保守性は簡単です。
- パフォーマンスが向上します。
Q#3)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合は、エラーについて説明してください。
Sample: Software Testing Help
var studentName = 'Sajeesh Sreeni'; // String 'Sajeesh Sreeni' stored in studentName var studentName; // varaible is decalred again document.getElementById('studentName').innerHTML = 'Redeclaring the varaible will not lose the value!.
' +'Here the value in studentName is '+ studentName;
回答 です r :このコードはエラーを生成しません。変数の再宣言はJavaScriptで許可されています。したがって、ここでステートメントを実行した後、変数の値が失われることはありません。
Q#4)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
Sample: Software Testing Help
var sum_first =50+20+' Sajeesh Sreeni '; var sum_second= ' Sajeesh Sreeni '+50+20; document.getElementById('sum_first').innerHTML = 'The first varaible sum is :'+sum_first + '
The second varaible sum is :'+sum_second ;
回答: このコードはエラーを表示しません!
コードスニペットの出力:
最初の変数の合計は次のとおりです。70SajeeshSreeni
2番目の変数の合計は次のとおりです。SajeeshSreeni5020
Q#5)test()メソッドとexec()メソッドの違いは何ですか?
回答: test()とexec()はどちらも正規表現メソッドです。
を使用して テスト() 、指定されたパターンの文字列を検索します。一致するテキストが見つかった場合は、ブール値「true」を返します。それ以外の場合は、「false」を返します。
しかし、 exec() 、指定されたパターンの文字列を検索します。一致するテキストが見つかった場合は、パターン自体を返します。それ以外の場合は、「null」値を返します。
Q#6)JavaScriptの利点は何ですか?
回答: このスクリプト言語には、以下に示すように多くの利点があります。
- 軽量: 実装は簡単です。メモリフットプリントが小さい。
- 解釈: インタープリタ型言語です。命令は直接実行されます。
- オブジェクト指向: これはオブジェクト指向言語です。
- 第一級関数: JavaScriptでは、関数を値として使用できます。
- スクリプト言語: これは、ランタイム環境向けに命令が記述されている言語です。
Q#7)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
Sample: Software Testing Help
Example Const Variable
const first_num; first_num =1000; document.getElementById('display').innerHTML = 'First Number:'+ first_num;
回答: 「const」変数「first_num」は値で初期化されていないため、コードは構文エラーを生成します。
コードスニペットの出力:
エラー:キャッチされていない構文エラー:const宣言に初期化子がありません
Q#8)デバッグにブラウザを使用しましたか?はいの場合、それはどのように行われますか?
回答: キーボードの「F12」キーを押すと、ブラウザでデバッグを有効にできます。結果を表示するには、(コンソール)タブを選択します。
コンソールでは、ブレークポイントを設定し、変数の値を表示できます。最新のブラウザにはすべて、デバッガが組み込まれています ((例えば: Chrome、Firefox、Opera、Safari ) 。この機能はオンとオフを切り替えることができます。
Q#9)JavaScriptコードでの「debugger」キーワードの使用は何ですか?
回答: コードで「debugger」キーワードを使用することは、デバッガーでブレークポイントを使用することに似ています。
コードをテストするには、ブラウザーでデバッガーを有効にする必要があります。ブラウザのデバッグが無効になっている場合、コードは機能しません。コードのデバッグ中、残りの部分は次の行に進む前に実行を停止する必要があります。
Q#10)エラー名の値の種類は何ですか?
回答: 「エラー名」プロパティには6種類の値があります。
エラー | 説明 |
---|---|
範囲エラー | 範囲外の数値を使用すると、このエラーが発生します |
構文エラー | このエラーは、誤った構文を使用すると発生します。 (質問番号7を参照してください) |
参照エラー | 宣言されていない変数を使用すると、このエラーがスローされます。質問番号:19を参照してください。 |
評価エラー | eval()のエラーが原因でスローされます。新しいJavaScriptバージョンにはこのエラーはありません |
タイプエラー | 値が使用されているタイプの範囲外です。質問番号:22を参照してください |
URIエラー | 不正な文字の使用のため。 |
Q#11)JavaScriptホイストとは何ですか?
回答: 「JavaScriptHoisting」メソッドを使用しているときに、インタープリターがコードを実行すると、すべての変数が元の/ currentスコープの先頭に引き上げられます。コード内のどこかに変数が宣言されている場合は、その変数が一番上に表示されます。
このメソッドは、変数の宣言にのみ適用可能であり、変数の初期化には適用できません。関数も上に上げられますが、機能の説明は上に上げられません。
基本的に、コード内で変数を宣言した場所はそれほど重要ではありません。
Q#12)JavaScriptの「厳密モード」とは何ですか?
回答: 「厳密モード」は、JavaScriptの制限付きバリアントです。通常、この言語はエラーのスローに関して「それほど厳密ではありません」。ただし、「厳密モード」では、サイレントエラーも含め、すべてのタイプのエラーがスローされます。したがって、デバッグのプロセスが簡単になります。また、開発者がミスを犯す可能性が低くなります。
Q#13)JavaScriptの「厳密モード」の特徴は何ですか?
回答:「厳密モード」の特徴は次のとおりです。
- 「厳密モード」は、開発者がグローバル変数を作成するのを防ぎます。
- 開発者は、重複するパラメーターの使用を制限されています。
- 厳密モードでは、JavaScriptキーワードを変数名または関数名として使用することを制限します。
- 厳密モードは、スクリプトの先頭で「usestrict」キーワードを使用して宣言されます。
- すべてのブラウザは厳密モードをサポートしています。
Q#14)自己呼び出し関数とは何ですか?
回答: これらは、「即時呼び出し関数式」または「自己実行匿名関数」とも呼ばれます。これらの関数はコード内で自動的に呼び出されるため、「自己呼び出し関数」という名前が付けられています。
通常、関数を定義して呼び出しますが、説明されている場所で関数を自動的に実行したい場合や、再度呼び出さない場合は、無名関数を使用できます。そして、これらのタイプの関数には名前がありません。
Q#15)「自己呼び出し関数」の構文は何ですか?例を挙げる?
回答:
自己呼び出し関数の構文:
(function () { return () } () ;
ここで、構文の最後の「()」括弧は、それが関数式であることを示しています。
自己呼び出し関数の例:
Sample: Software Testing Help
Example for Self-Invoking
(function (){ elem = document.getElementById('dispaly_num'); elem.innerHTML = 'This function has no name.
It is called automatically'; }());
ここでは、匿名関数がコードスニペットで自動的に呼び出されます。
この関数は、のテキストプロパティを設定するために使用されます
IDとして「display_num」を持つタグ。
コードスニペットの出力:
この関数には名前がありません。
自動的に呼び出されます
Q#16)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
回答:
Sample : Software Testing Help
Example for JavaScript Hoisting
first_num = 100; // Assign value 100 to num elem = document.getElementById('dispaly_num'); elem.innerHTML = ' Here the variable first_num: '+first_num +' is taken to the top
' + 'Since second variable is initialised the value is not taken to the top and it's value is ' + ''+second_num +' “; var first_num; // declaration only var second_num =200; // Initialised the variable
前のQ#11を参照してください。そこで説明されているように、インタプリタは初期化を除いて宣言されたすべての変数を先頭に移動します。
これにより、「first_num」変数が先頭に移動し、「second_num」変数が値で初期化されるため、先頭に移動されません。このコードはエラーをスローしません。ただし、「second_num」の値は未定義です。
コードスニペットの出力:
ここでは、変数first_num:100が先頭になります
2番目の変数が初期化されているため、値は先頭に移動せず、その値は未定義です。
Q#17)古いバージョンのブラウザからJavaScriptコードを非表示にする必要がある場合、どのように実行しますか?
回答: コードで、タグの後に「
これにより、ブラウザがJavaScriptコードの古いバージョンである場合、JavaScriptコードを実行できなくなります。また、終了タグの後に「// –>」HTMLタグを追加します。
この方法は、互換性の問題とUIの問題をある程度解決するのに役立ちます。
Sample: Software Testing Help
ここでは、古いバージョンのブラウザを使用していないため、タグがブラウザで実行された後のコードスニペットです。
コードスニペットの出力:
ここでは、古いバージョンのブラウザを使用していません。
だからコードは私のブラウザで動作します
Q#18)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合は、エラーについて説明してください。
Sample: Software Testing Help
Find the output
var first_num =500; var result= function(){ document.getElementById('display').innerHTML = first_num; var first_num =1000; } result();
回答: 上記のコードでは、「first_num」変数の値は1000にはなりません。
JavaScriptでは、変数の初期化のための巻き上げはありません。関数「result()」は、関数内で宣言されているローカル変数「first_num」を選択します。変数は使用後に宣言されるため、「first_num」の値は未定義です。
コードスニペットの出力:
未定義
Q#19)「var」キーワードと「let」キーワードの違いは何ですか?
回答:違いは次のとおりです。
どこ | しましょう |
---|---|
「var」キーワードは、ステージ自体の最初からJavaScriptコードに導入されました。 | 「let」キーワードは2015年にのみ導入されました。 |
「var」キーワードには関数スコープがあります。 varで定義された変数は、関数内のどこでも使用できます | 「let」キーワードで宣言された変数は、そのブロック内でのみスコープを持ちます。だから、ブロックスコープを持ってみましょう。 |
「var」で宣言された変数が引き上げられます | 「let」で宣言された変数を巻き上げる |
Q#20)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
Sample: Software Testing Help
Find the output
if(true){ var first_num =1000; let second_num=500; } document.getElementById('display_first').innerHTML = 'First Number:' + first_num; document.getElementById('display_second').innerHTML = 'Second Number:' + second_num;
回答:
コードスニペットの出力:
最初 番号: 1000
私たちは得るだろう '最初 番号: 1000 ' 出力として。 「UncaughtReferenceError」エラーもあります。
コードスニペットでは、「second_num」のスコープはif()ブロック内にのみあります。開発者がブロック外の値にアクセスしようとすると、「UncaughtReferenceerror」が発生します。
キャッチされていない参照エラー:second_numが定義されていません。
Q#21)「==」と「===」の違いは何ですか?
回答: 「==」と「===」はどちらも比較演算子です。
‘==’演算子 | ‘===’演算子 |
---|---|
これは「型変換演算子」として知られています | 「厳密な等式演算子」として知られています |
値を比較し、タイプを比較しません | 値と型の両方を比較します。 |
Q#22)「let」と「const」の違いは何ですか?
回答:違いは次のとおりです。
しましょう | const |
---|---|
「let」を使用すると、変数の値を何度でも変更できます | 「const」を使用すると、値の最初の割り当て後、値を再定義することはできません |
コードを検討してください {{ first_num = 1とします。 first_num = 2; 資料。書き込み(first_num); } first_numの値を変更できるため、ここでコードは出力を提供します。 | コードを検討してください {{ const second_num = 1; second_num = 2; 資料。書き込み(second_num); } ここでは、「second_num」に2番目の値が割り当てられているため、コードでエラーが発生します。 |
Q#23)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
Sample: Software Testing Help
Example of 'Const' Keyword
let first_num =500; first_num=501; document.getElementById('display_first').innerHTML = 'First Number:'+ first_num ; const second_num =1000; second_num=1001; document.getElementById('display_second').innerHTML = 'Second Number :'+second_num;
回答: さらに読む前にQ#21を参照してください
コードスニペットの出力:
最初の番号:501
また、「const」変数の値を変更しようとしているため、コードの実行中にエラーが発生します。
エラー: Uncaught TypeError:定数変数への割り当て。
Q#24)「null」と「undefined」の違いは何ですか?
回答: 両方のキーワードは空の値を表します 。
違いは次のとおりです。
- 「未定義」では、変数を定義しますが、その変数に値を割り当てません。一方、「null」では、変数を定義し、「null」値を変数に割り当てます。
- (未定義)オブジェクトのタイプと(null)オブジェクトのタイプ。
Q#25)「関数宣言」と「関数式」の違いは何ですか?
回答: それは例で説明することができます:
Sample: Software Testing Help
Example Function Declaration
function add(first_num,second_num){ return first_num + second_num; } var substract = function sub(first_num,second_num){ return first_num - second_num; } var first_num=700; var second_num=300; document.getElementById('display_add').innerHTML = 'Sum of the number is:' + add(first_num,second_num); document.getElementById('display_sub').innerHTML = 'Difference of the number is:' + substract(first_num,second_num);
例に示すように、add()は関数宣言であり、subtract()は関数式です。関数宣言の構文は、変数に保存される関数のようなものです。
関数宣言は引き上げられますが、関数式は引き上げられません。
Q#26)「settimeout()」とは何ですか?
回答: 例を挙げて説明します。
コードスニペットを検討してください
Console.log (‘First Line’); Console.log (‘Second Line’); Console.log (‘Third Line’);
コードスニペットの出力:
最初の行
二行目
3行目
ここで、settimeout()メソッドを導入し、同じコードセットをラップします。
Settimeout(function() { Console.log (‘First Line’); },0); Console.log (‘Second Line’); Console.log (‘Third Line’);
コードスニペットの出力:
二行目
3行目
最初の行
settimeout()の導入により、プロセスは非同期になります。スタックに配置される最初のステートメントは、Console.log(「2行目」)とConsole.log(「3行目」)であり、最初に実行されます。スタック内のすべてが最初に完了するまで待つ必要があります。
「0」はタイムアウト期間ですが、すぐに実行されるわけではありません。
Q#27)クロージャとは何ですか?どのように使用しますか?
回答: クロージャは内部関数です。関数の外部変数にアクセスできます。クロージャでは、function_1内に「A」値を返す別のfunction_2があり、function_1も値を返します。 「B」と言います。
ここで、sum()は外部関数で、add()は内部関数であり、「first_num」、「second_num」、「third_num」を含むすべての変数にアクセスできます。外側の関数は内側の関数add()を呼び出しています。
// To find the sum of two numbers using closure method function sum( first_num, second_num ) { var sumStr= 600; function add(first_num , second_num) { return (sumStr + (first_num + second_num)); } return add(); } document.write('Result is :'+ sum(150,350));
コードスニペットの出力:
結果は:500
Q#28)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
Sample: Software Testing Help
Example Assignmnet Statement
var x =500; let y,z,p,q; q=200; if(true){ x=y=z=p=q; document.getElementById('display').innerHTML = 'x='+ x + '
y :'+ y +'
z :'+ z+'
p :'+ p+'
q :'+ q; }
回答: 割り当てステートメントは、右から左に検討されます。
コードスニペットの出力:
x = 200
および:200
と:200
p:200
q:200
Q#29)コードスニペットがtest()メソッドとexec()メソッドの違いを示している例を挙げてください。
Sample : Software Testing Help
Example for exec() methods
Click the button to search for a pattern 'How“ in the given string 'Hello. Good Morning. How do you feel today?'
If the 'How' is found, the method will return the pattern
Search function searchTxt() { var str = 'Hello. Good Morning. How do you feel today?'; var search_patt = new RegExp('How'); var res = search_patt.exec(str); document.getElementById('result').innerHTML ='Found the pattern :'+ res; }
回答: これは、test()メソッドとexec()メソッドの例です。詳細については、Ques No:5を参照してください。
コードスニペットの出力:
exec()を使用してパターンを見つけました:方法
test()を使用すると、結果は次のようになります。true
Q#30)JavaScriptホイストを示す例を挙げてください。
回答:
Sample: Software Testing Help
Example for JavaScript Hoisting
num = 100; // Assign value 100 to num elem = document.getElementById('dispaly_num'); elem.innerHTML = 'Here the variables are used before declaring it.' + '
The value of the variable is ' + num; var num; // Declare the varaible
詳細については、Q#11を参照してください。
ここでは、変数「num」を宣言する前に使用しています。しかし、JavaScriptホイストはそれを可能にします。
コードスニペットの出力:
ここでは、宣言する前に変数が使用されます。
変数の値は100です
Q#31)JavaScriptコードでの「debugger」キーワードの使用例を教えてください。
回答:
Sample: Software Testing Help
Example for debug keyword
Here to test the code, debugger must be enabled for the browser,
during debugging the code below should stop executing before it goes to the next line.
var a = 1000; var b = 500; var sum = a + b; document.getElementById('wait_result').innerHTML = 'Adding numbers......
Select 'Resume Script execution' to continue: '; debugger; document.getElementById('show_result').innerHTML = 'Sum of the numbers : '+sum;
注意: ブラウザがコードをテストするには、デバッガが有効になっている必要があります。詳細については、質問番号5を参照してください。
これはデバッグキーワードの例です(使用するブラウザ:Chrome)
コードスニペットの出力:
ここでコードをテストするには、ブラウザーでデバッガーを有効にする必要があります。
デバッグ中、以下のコードは次の行に進む前に実行を停止する必要があります。
数字を追加…
(スクリプトの実行を再開)を選択して続行します。
数字の合計:1500
Q#32)次のコードスニペットで、出力を予測できますか、またはエラーが発生した場合。エラーについて説明してください。
Sample: Software Testing Help
Example Type Converting
最高のドライブクローンソフトウェアウィンドウズ10
var first_num =500; var first_name='500'; if(first_num == first_name){ document.getElementById('display').innerHTML = 'Comparison will return 'true' by Type converting Operator '; }
回答: コードを検討してください
If (‘100’==100) { document. write (“It’s a Type Converting Operator”); } Here typeof(‘100’) is string typeof(100) is number the ‘==’ operator will convert the number type, which is on the right side of the operator to string and compare both values
コードスニペットの出力:
比較では、タイプ変換演算子によって「true」が返されます
Q#33)JavaとJavaScriptは似ていますか?そうでない場合、JavaとJavaScriptの違いは何ですか?
回答:
Slいいえ | Java | JavaScript |
---|---|---|
1 | Javaは汎用プログラミング言語です。 | JavaScriptは、高レベルのインタプリタスクリプト言語です。 |
二 | Javaは、オブジェクト指向プログラミング(OOPS)の概念に基づいています。 | JavaScriptは、オブジェクト指向であると同時に機能的なスクリプトでもあります。 |
3 | Java仮想マシン(JVM)またはブラウザで実行されます。 | ブラウザでのみ実行されます。 |
4 | JavaコードはJavaクラスファイルとしてコンパイルする必要があります。 | JavaScriptにはコンパイル手順がありません。 代わりに、ブラウザーのインタープリターがJavaScriptコードを読み取り、各行を解釈して実行します。 |
したがって、要するに、これらの言語は相互にリンクまたは依存しているわけではありません。
Q#34)JavaScriptでサポートされているデータ型はどれですか?
回答: JavaScriptは以下をサポートします セブン プリミティブデータ型と オブジェクト :
(i)ブール値: これは、trueまたはfalseの2つの値のみを持つことができる論理データ型です。 typeof演算子を使用して「true」または「false」のデータ型をチェックすると、ブール値が返されます。
例えば、 typeof(true)//ブール値を返します
ブール値は、2つの変数を比較するために使用できます。
例えば、
var x = 2; var y = 3; x==y //returns false
ブール値を使用して状態を確認することもできます
例えば、
var x = 2; var y = 3; If(x上記の条件 ‘x ブール変数は、Boolean()関数を使用して作成できます。
var myvar = ‘Hi'; Boolean(myvar); // This returns true because the 'myvar' value exists
また、ブールオブジェクトは、次のようにnew演算子を使用して作成できます。
var myobj = new Boolean(true);
(ii)ヌル :これは、「null」自体という1つの値のみで表されるデータ型です。 null値は、値がないことを意味します。
例えば、
var x = null; console.log(x);// This returns null
typeof演算子を使用してaのデータ型を確認すると、次のようになります。
typeof(x); // This returns object. type of a null value is an object, not null.
(iii)未定義: このデータ型は、定義されていない変数を意味します。変数が宣言されていますが、値が含まれていません。
例えば、
var x; console.log(x); // This returns undefined x=10;//Assign value to x console.log(x); // This returns 10
変数「a」は宣言されていますが、まだ値が割り当てられていません。
以下に値を割り当てることができます。
(iv)番号: このデータ型は、浮動小数点値、整数、指数値、「NaN」または「無限大」にすることができます。
例えば、
var x=10; // This is an integer value var y=10.5; // decimal value var c = 10e5 // an exponential value ‘xyz’ * 10; //This returns NaN 10/0; // This returns infinity
数値リテラルは、Number()関数を使用して作成できます。
var x = Number(10); console.log(x);// This returns 10
また、数値オブジェクトは、次のように「new」演算子を使用して作成できます。
var x= new Number(10); console.log(x); // This returns 10
(v)BigInt: これは、任意の精度で整数を表すことができる数値プリミティブです。 BigIntは、整数の末尾にnを追加することによって作成されます
例えば、
const x = 15n;
数値は、BigInt(number)関数を使用してBigIntに変換できます。
const x = 251; const y = BigInt(x); y === 251n // returns true
(vi)文字列: このデータ型は、テキストデータを表すために使用されます。
例えば、
var strVar1 = “Hi,how are you?”; var strVar2 = ‘Hi,how are you?’;
次のように、String()関数を使用して新しい文字列を作成することもできます。
var strVar3 = String(‘Hi,how are you?’); // This creates a string literal with value ‘Hi,how are you?’
String()関数は、文字列以外の値を文字列に変換するためにも使用されます。
String(150); // This statement will create a string ‘150’
文字列は、を使用して作成することもできます '新着' オペレーター
var strVar4 = new String(“Hi,how are you?”); // This is a string object console.log(strVar4); // This will return the string ‘Hi,how are you?’
JavaScript文字列は不変です。つまり、文字列が作成されると、変更することはできません。ただし、元の文字列に対する操作を使用して、別の文字列を作成できます。
例えば、
- 連結演算子(+)またはを使用して2つの文字列を連結する String.concat() 。
- を使用して部分文字列を取得する String.substr() 。
(vii)記号: これは一意で不変のプリミティブ値であり、Objectプロパティのキーとして使用されます。シンボルは、ECMAScript2015のJavaScriptの新機能です
に シンボル valueは一意の識別子を表します。
例えば、
var symVar1 = Symbol('Symbol1'); let symVar2 = Symbol('Symbol1'); console.log(symVar1 === symVar2); // This returns 'false'.
そのため、多くのシンボルは同じ説明で作成されますが、値は異なります。
記号は自動変換できません。
例えば、
var symVar1 = Symbol('Symbol1'); alert(symVar1); // This gives TypeError: Cannot convert a Symbol value to a string
これは、 toString () 次のように:
alert(symVar1.toString()); // Symbol(symVar1), this works
オブジェクトのデータ型
オブジェクトは、識別子によって参照されるメモリ内の値です。
オブジェクトとは、データとそのデータを操作するための命令を持つデータ構造を指します。オブジェクトは時々現実世界のものを参照します、 例えば、 従業員または車。
Javaでオブジェクトの配列を作成する方法
例えば、
JavaScriptオブジェクトでは、値は次のように記述されます。 名前:値 以下のペア:
var car1 = {type:'BMW', model:” The BMW X5“, color:'white'}; An object definition can span multiple lines as follows: var car1 = { type:'BMW', model: 'The BMW X5', color:'white' };
ザ・ 名前:値 ペアは呼ばれます プロパティ 。 例えば、 「type」はプロパティであり、「BMW」はプロパティの値です。
プロパティ値には、objectName.propertyNameを使用してアクセスします
またはobjectName (“ propertyName”)
例えば、 car1.typeまたはcar1 (“ type”)は、「BMW」を返します
オブジェクトcar1の値は、次のように変更できます。
car1.type = “Audi”;
さて、
console.log(car1) ;//This will return {type:'Audi', model:” The BMW X5“ , color:'white'};
Q#35)JavaScriptは大文字と小文字を区別する言語ですか?
回答: はい、JavaScriptは大文字と小文字を区別する言語です。これは、言語、変数、関数名、およびその他の識別子のキーワードであり、常に大文字または小文字を使用して入力する必要があります。
例えば、 myVarはmyvarとは異なる変数です。
Q#36)オペランドが属するデータ型を判別する方法は?
回答: オペランドのデータ型は、typeof演算子を使用して見つけることができます
オペランドのタイプを示す文字列を返します。
構文 :typeofオペランド
typeof(オペランド)
オペランドは、任意の変数、オブジェクト、または関数にすることができます。
例えば、
console.log (typeof 10);// expected output: 'number' console.log (typeof 'hello');// expected output: 'string' console.log (typeof);//expected output: //'undefined';
Q#37)JavaScriptが緩く型付けされた言語または動的言語として呼び出されるのはなぜですか?
回答: JavaScriptは、緩い型または動的言語と呼ばれます。これは、JavaScript変数が値型に直接関連付けられておらず、すべての型の値を変数に割り当てたり、再割り当てしたりできるためです。
例えば、
var myvar = ‘abc’; // myvar is string myvar =true; // myvar is now a boolean myvar = 10; // myvar is now a number
Q#38)JavaScriptのnullとは何ですか?
回答: 値nullは、オブジェクト値が意図的に存在しないことを表します。
これはJavaScriptの基本的な値の1つです。
例えば、
Var myvar = null; console.log(myvar); //This will print null
Q#39)NaNとは何ですか?
回答:NaN Not-A-Numberを表すグローバルオブジェクトのプロパティです。
例えば、
function checkValue(x) { if (isNaN(x)) { return NaN; } return x; } console.log(checkValue ('5')); //expected output: '5' console.log(checkValue (‘Any value’)); //expected output: NaN
Q#40)文字列を配列アイテムに分割するにはどうすればよいですか?
回答: 文字列は、JavaScriptのsplit()メソッドを使用して配列に分割できます。このメソッドは、文字列を区切りたい文字である単一のパラメーターを受け取り、区切り文字の間の部分文字列を配列内の項目として返します。
例えば、
myDaysString = ''Sunday,Monday,Tuesday,Wednesday”; String can be split at comma as below: myDaysArray= myDaysString.split(','); console.log(myDaysArray(0)); //output is the first item in the array i.e. Sunday console.log (myDaysArray(myDaysArray.length-1)); //output is the last //item in the array i.e. Wednesday
Q#41)配列アイテムを文字列に結合するにはどうすればよいですか?
回答: 配列アイテムは、join()メソッドを使用して結合できます。
例えば、
var myDaysArray= ('Sunday','Monday','Tuesday',”Wednesday”);
配列アイテムは、次のように文字列に結合されます。
myDaysString= myDaysArray.join(','); console.log(myDaysString);//output is joined string i.e.//Sunday,Monday,Tuesday,Wednesday
Q#42)JavaScriptにはどのような種類のエラーがありますか?
回答: 以下は、2種類のエラーです。
- 構文エラー: これらは、コードのスペルミスまたはタイプミスであり、プログラムがまったく実行されないか、途中で動作を停止します。通常、エラーメッセージも表示されます。
- 論理エラー: これらは、構文は正しいが、ロジックまたはコードが不正確な場合のエラーです。ここでは、プログラムはエラーなしで正常に実行されます。ただし、出力結果は正しくありません。これらのプログラムは論理エラーのエラーメッセージを表示しないため、これらは構文エラーよりも修正が難しいことがよくあります。
Q#43)効果的に1つの条件に対して多数の選択肢を処理する方法 仕方?
回答: これは、switchステートメントを使用して行われます。
例えば、
switch (expression) { case choice1: code to be run break; case choice2: code to be run break; : : default: code to run if there is no case match }
Q#44)三項演算子とは何ですか?
回答: 三元または条件付きは、真または偽のテストに基づいて2つのオプションからすばやく選択するために使用される演算子です。
これは、真/偽の条件から選択される2つの選択肢がある場合に、if…elseブロックの代わりに使用できます。
例えば、
if (some condition) result = ‘result 1’; else result = ‘result 2’;
次のように、1つのステートメントで三項演算子を使用して同じコードを記述できます。
結果=(条件)? ‘結果1’: ‘結果2’;
Q#45)人というオブジェクトがあるとします
const person = {
名前 : {
最初:「ボブ」、
最後:「スミス」
}
};
オブジェクトプロパティ「最初」にアクセスする正しい方法は次のうちどれですか?
- person.name.first、または
- 人(‘名前’) (‘最初’)?
回答: どちらも正しい方法です。つまり、person.name.firstのようなドットを使用するか、person (‘name’) (‘first’)のような角かっこ表記を使用します。
Q#46)「これ」とは何ですか?
回答: 「this」キーワードは、コードが記述されている現在のオブジェクトを指します。
これは、メンバーのコンテキストが変更されたときに正しい値が使用されるようにするためです。
例えば、 の2つの異なるインスタンスがあります 人 名前が異なり、次のようにアラートに自分の名前を出力する必要があります。
const person1 = { name: 'Tom', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
ここで、出力は おはようございます!私は「トム」です
const person2 = { name: 'Jerry', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
ここで、出力は おはようございます!私は「ジェリー」です
Q#47)匿名関数とは何ですか?
回答: 匿名関数は名前のない関数であり、それ自体では何もしません。これらは通常、イベントハンドラーと一緒に使用されます。
例えば、 次のコードでは、無名関数コード、つまりalert( ‘Hi’);関連するボタンをクリックすると実行されます:
var myButton = document.querySelector('button'); myButton.onclick = function() { alert('Hi'); }
匿名関数を変数の値に割り当てることもできます。
例えば、
var myVar = function() { alert('Hi'); }
この関数は、次を使用して呼び出すことができます。
myVar();
結論
JavaScriptコード、CSS、およびHTMLを個別の外部「js」ファイルとして保存することをお勧めします。コーディング部分とHTML部分を分離すると、読みやすく、操作しやすくなります。複数の開発者は、この方法を同時に使用する方が簡単だと感じています。
JavaScriptコードは保守が簡単です。同じJavaScriptコードのセットを複数のページで使用できます。外部JavaScriptコードを使用していて、コードを変更する必要がある場合は、1か所で変更する必要があります。コードを再利用して、はるかに簡単な方法で保守できるようにします。
推奨読書= >> TypeScriptとJavaScript
JavaScriptコードの方がパフォーマンスが優れています。外部JavaScriptファイルは、ブラウザによってキャッシュされるため、ページの読み込み速度が向上します。
JavaScriptインタビューの質問と回答がお役に立てば幸いです。できるだけ多くの質問を練習し、自信を持ってください。
推奨読書