JS共通コードスニペットの整理_JavaScriptスキル
各コードの前には、機能の注釈やパラメータの要件などの説明テキストが付いています。これ以上のコメントは必要ありません。 明確に見るために、ここに小さなディレクトリを順番に示します:
window.setTimeout を書き換える、
再帰プログラムの戻りパターンを理解する、
長い文字列をインターセプトする、
ページ上の要素の位置を取得する絶対位置、
統計、重複文字の削除 (複数のメソッドで実装)、順序付けされた配列要素の
ランダム シャッフル (複数のメソッドで実装)。
/*
機能: パラメーターとオブジェクトパラメーターを渡せるように window.setTimeout を変更します (setInterval にも使用できます)
使用方法: setTimeout(callback function, time, param 1, ... ., パラメータ n) (FF はネイティブ サポートを備えていますが、IE はサポートしていません)
*/
var __sto = setTimeout
window.setTimeout = function(callback,timeout,param){
var args = Array.prototype.slice.call(arguments,2);
var _cb = function(){
callback.apply(null,args);
__sto(_cb,タイムアウト);
}
関数 aaaaa(a,b,c){
alert(a b c);
window.setTimeout(aaaaa,2000,5,6,7); /**//*
関数: 再帰的プログラムの戻りパターンを理解する (内部から外部へ)
オブジェクト間のメンバーの相互参照
*/
var ninja = {
yell: function(n){
return n > 0 ? ninja.yell(n-1) "a" : "hiy";
}
};
alert(ninja.yell(4))//結果は次のとおりです: hiyaaaa;
var 侍 = { hell: ninja.yell }; = {}; / / ここのコメントが結果に影響するかどうか
try {
alert(samurai.yell(4))
} catch(e){
alert("うーん、これはダメだ! ninja.yell はどこへ行った?" );
} /**機能: 長い文字列をインターセプト
* @param {string} str インターセプトする文字列
* @param {number} size インターセプト長 (半角バイト長)
*/
var subStr = function(str, size){
var curSize = 0, arr = [];
for(var i = 0, len = str.length; i
arr.push(str.charAt(i)); (i) > 255){
curSize = 2;
if(size === curSize || size === curSize - 1){
return
}
}else{
curSize;
if(size === curSize){
return arr.join('');
}
}
} ;
var str = '#%*...Ӓabcd では長さが足りません';
alert(str.length); );
alert(subStr(str, 15));/**//*
機能: ページ上の要素の絶対位置を取得します (ページの左上隅を基準とした)
@param {string} 位置を求めるノード DOM 要素
*/
function getAbsPosition(node) {
var t = node.offsetTop;
var l = ノード。 offsetLeft;
while (node = ノード.offsetParent) {
t = ノード.offsetTop;
l = ノード.offsetLeft;
alert("top=" t "n " "left=" l );
}/**//*
機能: 統計、繰り返し文字の削除
@param str カウントする文字列
説明: 文字列内の繰り返し文字、または配列内の繰り返し文字、数字などをカウントするためによく使用されます。
ここではインターネットから収集した 2 つの典型的なタイプを示します。それぞれに 2 つの実装方法があり、さまざまな角度から書かれた他の多くのバリアントがあり、検索して学ぶことができます。 カウントするデータは配列または文字列のいずれかであり、String.split() または Array.join()
を使用して、関数パラメーターで必要な型に変換します。
*/ // タイプ 1: 新しいオブジェクトを使用してデータを保存する
var count1 = function (str) {
var map = {} 、maxCount = 0、maxChar 、未定義、i = str.length;
while (i--) {
var t = str.charAt(i);
map[t] == 未定義? マップ[t] = 1 : マップ[t] = 1;
if (マップ[t] > maxCount) {
maxCount = マップ[maxChar];
}
return "文字:" maxChar "回数:" maxCount;
}function s_0(a) { // ここのパラメータは配列型である必要があります
var b = {}, c = [], i;
for (i = 0; i
c[c.length] = a[i], b[a[i ]] = true;
}
}
return c;
}// タイプ 2: 正規表現の統計情報
var count2 = function (str) {
var most = str.split('').sort().join('').match(/(.)1*/g) //繰り返しの文字を並べます
most = most.sort(function (a, b) { return a.length - b.length }).pop(); // 出現頻度で並べ替えます
return most.length ': ' most[0]; >}function s_1(a) {
var a = a.join(""), b = [];
while (a.length > 0)
a = a.replace(new RegExp) ((b[b.length] = a.charAt(0)), "g"), "");
return
}/**//*
関数: 順序付けされたものをスクランブルします。 array (順序付けされていないランダムな配列を生成します)
説明: 基本的な並べ替えアルゴリズムについては誰もがよく知っているはずです。ただし、プログラミングでは逆の操作、つまり元の順序付けられた配列要素をランダムにシャッフルする操作がよく使用されます。
以下に 3 つの方法を示します。最初の方法は以前に自分で作成したもので、レベルが低かったため、コードの計算量が多すぎました。
そのため、いくつかの簡単で効率的な方法を探しました。インターネット。
2 つ目は、多くの人が聞いたことがある「シャッフル アルゴリズム」と言われています。
3 つ目は、実装が非常に簡単な JS の組み込みソート メソッドを使用することです。
*/
// 方法 1 (失敗の教訓を全員に教える)
function randArray(num) {
var rands = []
var ra = parseInt(num * Math) .random());
rands.push(ra);
for (var r = 0; r ra = parseInt(num * Math.random() );
for (var m = 0; m while (rands[m] == ra) {
ra = parseInt(num * Math.random() );
m = -1;
}
rands.push(ra)
//alert(rands); >}
//方法 2:
// 2 つの [0...array.Length) の間の乱数を選択し、2 つの添え字付き要素を交換します (これは順序付けにおいてより効率的です)
/*注: これは「シャッフル アルゴリズム」です。シャッフルの効果は次のとおりであることが証明されています。
ランダムに nums/2 回交換する効果は、平均すると、オブジェクトの約 1/3 のままです。元の位置にあります
基本的には、nums をランダムに 2 回交換した後でも使用可能であり、平均して約 15% のオブジェクトが元の位置に残っています
実際に使用できるのは、nums*2 回をランダムに交換し、約 2 回後です平均してオブジェクトの % が元の位置にあります
*/
function daluan(nums) {
var array=[];
for (var i = 0; i array[i] = i;
}
for (var i = 0; i < nums; i ) {
var rand = parseInt(nums * Math.random() );
var temp = array[i];
array[rand] = temp;
// 方法 3:
// 比較関数をランダムに渡す -1 または 1 を返すだけ (並べ替え効率が高くない可能性があります)
var testArray3=[1,2,3,4,5 ,6,7,8,9,10,22,33,55, 77,88,99];
testArray3.sort(function(){return Math.random()>0.5?-1:1; });
アラート(testArray3);

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

JavaScriptはPowerPointで実行でき、外部JavaScriptファイルを呼び出したり、VBAを介してHTMLファイルを埋め込んだりすることで実装できます。 1. VBAを使用してJavaScriptファイルを呼び出すには、マクロを有効にし、VBAプログラミングの知識を持つ必要があります。 2。JavaScriptを含むHTMLファイルを埋め込みます。これは、シンプルで使いやすいが、セキュリティ制限の対象となります。利点には、拡張機能と柔軟性が含まれますが、欠点にはセキュリティ、互換性、複雑さが含まれます。実際には、セキュリティ、互換性、パフォーマンス、ユーザーエクスペリエンスに注意を払う必要があります。
