フロントエンド エンジニアは、面接中にある種の面接官に遭遇することがあります。彼らが尋ねる質問は、言語自体について非常に深刻であり、多くの場合、候補者が期待する実際的な質問ではありません (一部の候補者は、それができれば十分であると強調します。理由を知っているかどうかについては関係ありません)。このタイプの質問には論理はありませんが、受験者の javascript
言語に対する理解をある程度テストします。 javascript
这门语言的理解。
突然想到这个话题是无聊在翻自己的Github,看看以前都写过什么丑货。然后翻到了这篇解释Javascript quiz的文章quiz-legend,反正没事儿,就想搬过来供大家学习、理解、背诵、批判。
(function(){ return typeof arguments;//"object" })();
arguments
是一个Array-like对象,对应的就是传入函数的参数列表。你可以在任何函数中直接使用该变量。
typeof
操作符只会返回string
类型的结果。参照如下列表可知对应不同数据,typeof
返回的值都是什么:
类型 | 结果 |
---|---|
undefined | 'undefined' |
null | 'object' |
Boolean | 'boolean' |
Number | 'number' |
String | 'string' |
Symbol (new in ECMAScript 2015) | 'symbol' |
Host object (provided by the JS environment) | Implementation-dependent |
Function object (implements [[Call]] in ECMA-262 terms) | 'function' |
Any other object | 'object' | 私が突然このトピックを思い出したのは、退屈していて、自分が以前にどんな醜いことを書いたかを確認するために Github を調べていたからです。そんなとき、JavaScript クイズを説明するこの記事のクイズ凡例を見つけました。とにかく、それでいいので、誰もが学び、理解し、暗唱し、批判できるようにここに移動したいと思いました。
typeof
演算子は、string
型の結果のみを返します。さまざまなデータに対して typeof
によって返される値が何であるかを確認するには、次のリストを参照してください: 🎜入力 | 結果 | 🎜||
---|---|---|---|
未定義 🎜 | '未定義' 🎜🎜 | ||
null 🎜 | 'オブジェクト' 🎜🎜 | ||
ブール値 🎜 | 'boolean' 🎜🎜 | ||
'number' 🎜🎜 | |||
文字列</code >🎜<td align="left"><code>'string' 🎜🎜 | |||
シンボル (ECMAScript 2015 の新機能)🎜 | < code>'symbol'🎜🎜 | ||
ホスト オブジェクト (JS 環境によって提供される)🎜 | 実装に依存します🎜🎜< tr> | 関数オブジェクト (ECMA-262 用語で [[Call]] を実装)🎜 | 'function' 🎜🎜 |
'object' 🎜🎜🎜🎜
问题二var f = function g(){ return 23; }; typeof g();//报错 ログイン後にコピー ログイン後にコピー 这是一个名字是 这里的函数名
问题三(function(x){ delete x; return x;//1 })(1); ログイン後にコピー
delete object.property delete object['property'] ログイン後にコピー
问题四var y = 1, x = y = typeof x; x;//"undefined" ログイン後にコピー 我们试图分解上述代码成下面两步: var y = 1; //step 1 var x = y = typeof x; //step 2 ログイン後にコピー 第一步应该没有异议,我们直接看第二步
问题五(function f(f){ return typeof f();//"number" })(function(){ return 1; }); ログイン後にコピー 直接上注释解释: (function f(f){ //这里的f是传入的参数function(){ return 1; } //执行的结果自然是1 return typeof f(); //所以根据问题一的表格我们知道,typeof 1结果是"number" })(function(){ return 1; }); ログイン後にコピー 问题六var foo = { bar: function() { return this.baz; }, baz: 1 }; (function(){ return typeof arguments[0]();//"undefined" })(foo.bar); ログイン後にコピー 这里你可能会误以为最终结果是 问题七var foo = { bar: function(){ return this.baz; }, baz: 1 } typeof (f = foo.bar)();//"undefined" ログイン後にコピー 这和上一题是一样的问题, 问题八var f = (function f(){ return '1'; }, function g(){ return 2; })(); typeof f;//"number" ログイン後にコピー 逗号操作符 对它的每个操作对象求值(从左至右),然后返回最后一个操作对象的值 所以 问题九var x = 1; if (function f(){}) { x += typeof f; } x;//"1undefined" ログイン後にコピー 这个问题的关键点,我们在问题二中谈到过, 问题十var x = [typeof x, typeof y][1]; typeof typeof x;//"string" ログイン後にコピー
问题十一(function(foo){ return typeof foo.bar;//"undefined" })({ foo: { bar: 1 } }); ログイン後にコピー 这是个纯粹的视觉诡计,上注释 (function(foo){ //这里的foo,是{ foo: { bar: 1 } },并没有bar属性哦。 //bar属性是在foo.foo下面 //所以这里结果是"undefined" return typeof foo.bar; })({ foo: { bar: 1 } }); ログイン後にコピー 问题十二(function f(){ function f(){ return 1; } return f();//2 function f(){ return 2; } })(); ログイン後にコピー 通过 (function f(){ function f(){ return 1; } function f(){ return 2; } return f(); })(); ログイン後にコピー 问题十三function f(){ return f; } new f() instanceof f;//false ログイン後にコピー 当代码
于是,我们这里的 问题十四with (function(x, undefined){}) length;//2 ログイン後にコピー
OK,现在我们来看,由于 写在最后有人觉得这些题坑爹,也有人觉得开阔了眼界,见仁见智吧。但有一件事是真的,无论你是否坚定的实践派,缺了理论基础,也铁定走不远 - 你永远不会见到哪个熟练的技术工人突然成了火箭专家。 看文档、读标准、结合实践,才是同志们的决胜之道。 以上就是关于14 个折磨人的 JavaScript 面试题的代码示例详细分析的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
width プロパティを追加してコンテンツを左に移動します。
ボディに余白を設けました。 main {left margin: 200px; right margin: 200px; textalignment: center} テキストを1...
から 2024-04-06 22:01:35
0
3
816
ページが突然 CSS またはブートストラップを取得できなくなります
それで、私はページを開発しています。昨日その一部を実行してうまくいきました。そして今日は残りの作業を続けましたが、すべてがうまくいきました。通常の HTML ページとして開こうとす...
から 2024-04-06 21:58:04
0
1
800
d3.js でズームインすると散布図のポイントの値が維持されない
d3.js を使用するのは初めてなので、ご容赦ください。 vue.js ファイルに純粋な JavaScript として実装しました。ズーム機能を使用して散布図を作成しようとしていま...
から 2024-04-06 18:16:26
0
1
403
関連トピック
詳細>
|