5つの便利なトリック

JavaScriptプログラミングのすべての経験のために、これらの小さなコードを収集しました。 彼らはWeb開発者の生活を真剣に楽にし、重いJavaScriptライブラリを邪魔することなく問題を簡単に解決する方法を教えるべきです。 私は議論しませんが、時には非常に便利かもしれませんが、タイマーを作成するためにJQueryをロードすることは私の意見ではワイルドです...



受付番号1:

JavaScriptを使用したオブジェクトの削除に関するインターネット上のドキュメントはほとんどありません。 フォーラムの1つで、これは一般に不可能だと言われました。 実際-可能性があるだけでなく、非常に単純でもあります:

function Kill(object) {
object.innerText = null;
object.innerHTML = null;
object.outerHTML = null;
object = null;
}


関数への最初の唯一の引数で渡されたオブジェクトは完全に削除されます。 DOMは要素でも変数でもありますが、オブジェクトには何も残りません。 たとえば、最初の2行が関数から削除されると、オブジェクトにアクセスできなくなりますが、HTML要素はどこにも移動しません。 次のようなものを関数に追加できます。

if(typeof(object)=="string"){object=document.getElementById(object)};

プロセスを自動化するため。 次に、オブジェクト参照自体の代わりに、HTML要素のIDを引数として渡すことができます。

受付番号2:

取られた序文から。 タイマー。 さて、setInterval()およびclearInterval()関数について十分な人が知っているようです。 しかし、一部のプログラマーは、引用符で囲まれた独立したJavaScriptコードのみを周期的に実行できると誤解しています。

i = setInterval("alert('Hello, World!')",3000)

そんなに悪くない! 実際には、引数に関数を渡すことは受け入れられないという事実にもかかわらず、文字列の代わりにオブジェクト関数をそこに貼り付けることができます。

i = setInterval(abc(),3000)

文字列として引用符で関数を渡そうとする人もいますが、何も起こりません。 JavaScriptはロシアの体操選手のように柔軟であるため、通常は次のようにすべてを書くことができます。

i = serInterval(function{_},3000)

タイマーを作るのは本当に簡単です。

受付番号3:

AJAXの多くの愛。 JavaScriptでは、サーバー上のスクリプトにアクセスして関数を実装すると便利な場合があります。 それは:

bin2hex(number)

サーバー側で計算され、答えが得られます。 1つの問題:タスクを完了してデータを転送するには時間がかかります。 誰が私たちの機能を待っていますか? 誰も! 応答が到着するまでWebページ全体を「ハング」させる同期HTTP要求を使用できます。 健康で簡単:

function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function Get(url) {
var xmlhttp = getXmlHttp()
xmlhttp.open('GET',url, false);
xmlhttp.send(null);
if(xmlhttp.status == 200) {
//
}
}

, . , - Chrome ("! !"). , , :

function Get(url,whattado) {
var xmlhttp = getXmlHttp()
xmlhttp.open('GET',url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
whattado(xmlhttp.responseText);
}
}
};
xmlhttp.send(null);
}



繰り返しますが、誰も書くことを禁止していません。

Get('file.txt',function(txt){alert(txt)})

そして、ブラウザはフリーズせず、プログラマは喜んでいます。

受付番号4:

ランタイムエラーを回避する! 通常のユーザーはコンソールの存在を知らず、ページ上のボタンがまったく反応せずにアクションの実行を停止すると気分を害します(そして、結局、エラーが発生した場合にこれが発生します)。 try..catchコンストラクトを使用して、例外をキャッチします。

試してみる
{
document.write(junkVariable)
}

キャッチ(e)
{
アラート(e.message)
}

ところで、throw()演算子を使用して、自分で例外をスローできます。 ただし、メッセージオブジェクトの代わりに、親オブジェクトに直接アクセスする必要があります。

試してみる
{
// code_here
「Error5」をスローします
}
}

キャッチ(e)
{
if(e ==“ Error5”){alert(“ Error No. 5”)}
}

受付番号5:

一度、JavaScriptライブラリのバージョンを保存するために、読み取り専用変数を作成する必要がありました。 これの問題は私のものだけではなく、誰もが「JavaScriptの定数」ではなく「読み取り専用変数」を必要とするのは奇妙なことです。 そのため、JavaScriptには定数はありません。 ECMAScriptがありますが、それから私たちのページはクロスブラウザでなくなり、顧客は同じ瞬間に私たちを養うことをやめます。 読み取り専用変数は、Getterを使用して作成されます。

var lib = {
バージョンを取得(){return 5}
}

lib.version == 5、つまり 関数ではなく変数のように動作します。

クロスブラウザバージョンの入場は次のようになります。

var lib = {
this .__ defineGetter __( "version"、function(){return 5});
}

これらはすべて、私があなたに伝えたい便利なトリックではありません。 じゃあね

Source: https://habr.com/ru/post/J126788/


All Articles