ホームページ > ウェブフロントエンド > jsチュートリアル > 一部の JavaScript と一部のトピックの分析_JavaScript スキル

一部の JavaScript と一部のトピックの分析_JavaScript スキル

WBOY
リリース: 2016-05-16 18:13:33
オリジナル
937 人が閲覧しました

http://perfectionkills.com/javascript-quiz/
以下は、これらのトピックについての私自身の理解です。異なる意見や洞察がある場合は、お気軽にコメントしてください。

コードをコピー コードは次のとおりです:

(function(){
return typeof argument;
})() ;

この質問は比較的単純です。誰もが引数が配列であると考えていない限り、問題はありません。

コードをコピーします コードは次のとおりです。
var f = function g(){ return 23 }; ();


照準の本を見ると、このトラップは以下の質問の多くに登場します。 >戻り値は未定義です。



コードをコピー コードは次のとおりです。 (function( x){
delete x;
return x;
})(1);


JavaScript の delete は、導入または指定されたオブジェクトを削除するのではなく、オブジェクト自体を削除します。
/*
Data
delete演算子
オブジェクトから属性を削除するか、配列から要素を削除します。
式の削除
式パラメータは有効な JScript 式で、通常は属性名または配列要素です
したがって、ここでの仮パラメータの変更はそれとは何の関係もありません。
*/
delete の具体的な分析については、その質問の部分を庭の友人が独自に説明してくれましたが、私は不注意で読んでいませんでした(笑)
http://perfectionkills.com/ Understanding-delete/
1に戻ります。



コードをコピー コードは次のとおりです。 var y = 1 , x = y = typeof x;

この部分にはちょっとした罠があります(笑)、ご存知のとおり、typeof x は typeof です。 「未定義」です。笑
戻り値 もちろん文字列です。



コードをコピーします。
コードは次のとおりです。 (function f(f ){ return typeof f(); })(function(){ return 1; });さて、また罠です。笑、これは何ですか? 形式パラメータとは関係がありません。
つまり、形式パラメータは変更されません。 >したがって、数値が返されます。



コードをコピー

コードは次のとおりです。


var foo = {
bar: function() { return this.baz; },
baz: 1 }; ); })(foo.bar); ここで渡されるのは、親ではなく foo.bar です。



コードをコピーします。


コードは次のとおりです:

var foo = {
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)(); >上記の質問で、この質問は理解できます。
コードをコピーします
コードは次のとおりです。


var f = (function f(){ return " 1"; }, function g(){ return 2; })(); 🎜>

ここで重要なのは、() の戻り値です。




コードをコピーします
コードは次のとおりです: var x = 1; if (function f(){}) {
x =タイプ f;
}
x;
The things in if can definitely be executed because it is an actual existence (object). Non-null|underfined objects can be continued under if. However, they are the same as above. The principle, f , does not exist.
So 1undefined is returned.

Copy code The code is as follows:

var x = [typeof x, typeof y][1];
typeof typeof x;

Here, typeof y ,undefined. Then, typeof typeof undefined => vtypeof "undefined"
Returns "string".

Copy code The code is as follows:

(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });

Hehe, here It’s a little trap, it’s easy to get in if you look too fast.
A brief description, var fo = {foo:{bar:1}}; function(foo){})(fo);
return typeof foo.bar ==> return typeof fo.bar
So return "undefined".

Copy code The code is as follows:

(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();

This question is about the compiler's analysis of function. It doesn't matter about return. When he sees return as just a string, compile The processor has parsed all functions. This is different from var f = function(){}.
So, it will return 2.

Copy code The code is as follows:

function f(){ return f; }
new f() instanceof f;

I don’t understand this place enough, and the explanation given by Bottle seems to be understandable
new f() gets f itself, not a new object, so it is not an instance of f.
So, return false.

with (function(x, undefined){}) length;
Regarding with, if I regard with as a function (the same as alert).
Then this length, which is the length of the formal parameter of with.
Return to 2.
Okay. It seems that many issues about js still need to be sorted out. Aiming is a big book, and the explanation on this part is very powerful. It allows people to bypass some traps and problems. The rest is some own testing.
These questions cannot completely reflect a person's js ability, but at least they can let people know how the compiler works Processing js
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート