コードワードは簡単ではなく、役立つ学生は私のWeChat公式アカウントに注意を払うことを望んでいます:コードプログラムライフ、ありがとう!
今日は、Object.definePropertyに関するいくつかのインタビューの質問をあなたと共有します。
Object.definePropertyは、フロントエンドにとって非常に重要な知識ポイントです。Vueのコア双方向データバインディングは、Object.definePropertyを介して実現されます。Object.definePropertyは、フレームワークで広く使用されています。
if(a === 1 && a ===2 && a ===3){
console.log('You win!!!!');
}
如何进入if语句?
これはAliからのフロントエンドインタビューの質問です。質問は、質問にifステートメントを入力する方法です。aは1に等しく、2に等しく、3に等しい。従来の方法では、達成することは絶対に不可能です。このとき、Object.definePropertyが必要です。
var _default = 0;
Object.defineProperty(window,'a',{
get(){
return ++_default;
}
})
if(a === 1 && a ===2 && a ===3){
console.log('You win!!!!');
}
2.2。
a = 'Object';
console.log(a);
a = 'Array';
console.log(a);
a = '123';
console.log(a);
/**
* {
* type:'Object',
* length:6
* }
* {
* type:'Array',
* length:5
* }
*
* TypeError: This type is invalid
*/
タイトル要件:=「オブジェクト」、ニーズにより出力されることをコンテンツにconsole.log()であり、最初のオブジェクトのアノテーション場合、=「アレイ」、出力される第二のオブジェクトのアノテーション場合、a =他の値も、出力TypeError:これは無効なタイプのISです。
それでもObject.definePropertyを使用して解決します。
var _default = null;
Object.defineProperty(window,'a',{
get(){
return _default;
},
set(newVal){
switch(newVal){
case 'Object':
case 'Array':
_default = {
type:newVal,
length:newVal.length
}
break;
default:
throw new TypeError('This type is invalid');
}
}
})
a = 'Object';
console.log(a);
a = 'Array';
console.log(a);
a = '123';
console.log(a);
3.3。
console.log(_+_+_+_); //abcde ....z
各_にconsole.logは文字を表しから出発。、_、および_が一緒に追加される次の文字を出力継続します。たとえば、タイトルに4つの_を追加すると、出力コンテンツはabcdになります。引き続きObject.definePropertyを使用します。
Object.defineProperty(window,'_',{
get(){
this._c = this._c || 'a'.charCodeAt(0);
var _ch = String.fromCharCode(this._c);
if(this._c >= 'a'.charCodeAt(0) + 26) return;
this._c ++;
return _ch;
}
})
console.log(_ + _ + _ + _);
上記の3つの質問は、実際の結果を達成するために他の方法で達成できますが、インタビュアーが調べたい知識ポイントはObject.definePropertyのみです。次回同様のトピックを目にしたときは、まずこれに頼りましょう。
本日は3つのトピックをご紹介しますが、今後も更新していきます。
WeChatミニプログラムコースのデザイン、完全なデザインのニーズがあります。個人のQQに連絡してください:505417246
次のWeChatパブリックアカウントに注意してください。WeChatアプレット、Vue、TypeScript、フロントエンド、ユニアプリ、フルスタック、Nodejs、Python、その他の実用的な学習資料を受け取ることができます。
最新かつ最も完全なフロントエンドの知識の概要とプロジェクトのソースコードは、できるだけ早くWeChatに公開されます。いいえ、ご注意ください。ありがとうございます。