0-変数とパラメーターが初期化されているかどうかを判断します
(x){} //変数が初期化されるか、変数が空でないか、変数がゼロではない場合1分布関数は、返品値またはパラメータータイプの宣言を必要とせず、文の終了は「;」
関数合計(i1、i2){i1+i2を返す}匿名関数をすぐに使用するように2方向に宣言します
var f = function(i1、i2){return i1+i2;}; alert(f(1,2)); //通常の匿名関数alert(function(i1、i2){return i1+i2;}(3,4)); //直接宣言して、すぐに使用します3-jsにはクラスの概念がないため、いくつかの方法はクラスのように見えます
function person(name、age){this.name = name; // c#の動的aと同様に、属性を動的に追加します。 a = new expendoobject(); this.age = age; this.sayhello = function(){alert( 'hello、my name is'+name+'I'+age+'agh') // p1.gender = 'male'のようにクラスのように呼び出します。 //「ジェンダー」属性アラート(P1.Gender)を動的に追加します。4-Arrayオブジェクトは配列であり、配列の長さを事前に適格にする必要はありません。
var arr = new array(); arr [0] = 0; arr [1] = 1; arr [2] = 2; for(var i = 0; i <= arr.length-1; i ++){alert(arr [i]);}5-Arrayは配列、辞書、およびスタックでもあります
var dict = new Array(); //辞書として、dict ['i'] = 'wo'; dict ['love'] = 'ai'; dict ['you'] = 'ni'; alert(dict ['i']); // alert(dict.love)を呼び出す; //(dict in dict in dict){// travel alert(k)の呼び出し属性(動的言語の特性)のように呼び出す。 // 'i'、 'love'、 'you' - > key} for(var k of dict){// travel alert(k); // 'wo'、 'ai'、 'ni' - > print out balue} var arr = [1,2,3,4,5]; // array var arr = {"lorry":21、 "cloud":20}; // dictionaryスタイル作成方法の作成方法6-現在のページで呼び出すことができるすべての要素を移動します
var s = null; for(document in document){//オブジェクトのプロパティはs+= k+";";} alert(s);7-Subscript操作配列と同様の使用して、文字列の指定された位置で文字を取得します
var s = 'hello、world!'; s [0]; // 'h's [6]; // '' s [12]; // '!' s [13]; //範囲外の非定義インデックスはエラーを報告しませんが、常に未定義に戻ります。文字列は不変であることに注意する必要があります。文字列の特定のインデックスに値を割り当てると、エラーはありませんが、効果はありません。VARS= 'test'; s [0] = 'x'; alert(s); // sはまだ「テスト」です
8カプセル小文字
var s = 'hello'; s.touppercase(); // return 'hello' var s = 'hello'; s.tolowercase(); //「こんにちは」を返します
9指定された文字列が表示される場所を検索します
var s = 'hello、world'; s.indexof( 'world'); // 7s.indexof( 'world'); //指定されたサブストリングは見つかりませんでした、戻り-1
10-文字列指定されたインデックス間隔のサブストリング
var s = 'hello、world's.substring(0、5); //インデックス0から5(5を除く)から開始し、 'hello's.substring(7)を返します。 //インデックス7から最後まで開始し、「世界」を返します
11-JavaScriptオブジェクトは、いくつかのキー価値ペアで構成される順序付けられていない収集データタイプです。
var xiaoming = {name: 'xiaoming'、birth:1990、school: 'no.1 Middle School'、height:1.70、weight:65、score:null //最後のkey-valueペアを追加する必要はありません '}; xiaoming.name; // 'xiaoming'xiaoming.birth; // 1990属性へのアクセスは、。オペレーターですが、これには属性名が有効な変数名である必要があります。属性名に特殊文字が含まれている場合、[]:var Xiaohong = {name: 'Xiaohong'、 'Middle-School': 'No.1 Middle School'}; Xiaohong ['Middle-School']; // 'No.1 Middle School'xiaohong [' name ']; // 'xiaohong'xiaohong.name; // 'Xiaohong'xiaohong.age; // 未定義12 Xiaomingに特定の属性があるかどうかを検出するには、in operatorを使用します。
Xiaomingの「名前」; // XiaomingのTrue'Grade '; // false ***プロパティが存在すると判断した場合、このプロパティはXiaomingではない可能性があり、Xiaoming:「tostring」によって継承される可能性があります。 // true ***プロパティがXiaoming自体によって所有されているかどうかを判断するには、継承されていない場合、hasownProperty()メソッドを使用できます。 // truexiaoming.hasownproperty( 'toString'); // 間違い
13マップ
var m = new Map([['Michael'、95]、['bob'、75]、['tracy'、85]]); // 2d array初期化方法m.get( 'michael'); // 95 var m = new Map(); // empty mapm.set( 'adam'、67)を直接初期化します。 //新しいkey-valuem.set( 'bob'、59)を追加します。 M.Has( 'Adam'); //キー「アダム」かどうか:truem.get( 'adam'); // 67M.DELETE( 'Adam'); //キーを削除 'Adam'm.get(' Adam '); //未定義のvar m = new Map([[1、 'x']、[2、 'y']、[3、 'z']]);
関数を受信し、各反復を自動的に呼び戻す14本格的な組み込みforeachメソッド。
var a = ['a'、 'b'、 'c']; a.foreach(function(element、index、array){//要素:現在の要素の値を指す// index:point in current index // array:配列オブジェクト自体アラート(要素);});セットは配列に似ていますが、セットにはインデックスがないため、コールバック関数には最大2つのパラメーターがあります。VARS= new Set(['A'、 'B'、 'c']); s.foreach(function(element、set){alert(element);});マップのコールバック関数パラメーターは値、キー、マップ自体です:var m = new Map([1、 'x']、[2、 'y']、[3、 'z']]); m.foreach(function(value、key、map){alert(value);}); var a = ['a'、 'b'、 'c']; a.foreach(function(element){alert(element);});15使用配列のMap()メソッドは、独自の関数を渡すと、結果として新しい配列が表示されます。
var arr = [1、2、3、4、5、6、7、8、9]; arr.map(function(x){return x*x;})。16使用マップ()配列内のすべての数値を文字列に変換します。
var arr = [1、2、3、4、5、6、7、8、9]; arr.map(string); // ['1'、 '2'、 '3'、 '4'、 '5'、 '6'、 '7'、 '8'、 '9']]
累積計算を行うための17使用配列のdecod()
var arr = []; for(var x = 1; x <= 100; x ++){arr.push(x); // 1〜100を配列} alert(arr.reduce(function(x、y){return x+y; // arrのすべてのオブジェクトの累積合計、sum resultを返す});18-Use Reduce()を使用して素晴らしい変換を行います:[1、2、5、8、0]を整数12580に変換します
var arr = [1、2、5、8、0]; alert(arr.reduce(function(x、y){return x*10+y;});19使用フィルター()アレイの特定の要素を除外します
var arr = [0,1,2,3,4,5,6,7,8,9]; alert(arr.filter(function(x){return x%2 === 0;})) ']; alert(arr.filter(function(s){return s && s.trim(); // note:ie9})以下のバージョンにはtrim()メソッドはありません); // ['a'、 'b'、 'c']20-Arrayのsort()メソッドはすべての要素を最初に文字列に変換し、次にソートするので、...
[10、20、1、2] .sort(); // [1、10、2、20]番号サイズでソートする場合は、これを書くことができます:var arr = []; for(var x = 1; x <= 10; x ++){arr.push(x);} document.write(arr+"<br/>"); document.write(arr.sort(x、y){return x x <y?true:fals;};文字の影響を無視するには、最初に大文字または小文字に変換する必要がありますvar arr = ['google'、 'apple'、 'microsoft']; alert(arr.sort(function(s1、s2){var x1 = s1.touppercase(); var x2 = s2.touppercase(); return x1 <x2?false;}); // ['Apple'、 'Google'、 'Microsoft']]21閉鎖プログラム構造
corpernal関数をパラメーターに返す値として割り当て、パラメーターを呼び出して計算結果を取得しますvar arr = []; for(var n = 1; n <101; n ++){arr.push(n);} function lazy_sum(arr){var sum = function(){return arr.reduce(x、y){return x+y;}); } return sum;} var f = lazy_sum(arr); alert(f()); returened返された関数はすぐに実行されませんが、f()が関数count()と呼ばれるまで実行されません{var arr = []; for(var i = 1; i <= 3; i ++){arr.push(function(){return i * i;}); } return arr;} var results = count(); // 3つの関数がありますvar f1 = results [0]; var f2 = results [1]; var f3 = results [2]; f1(); // 16返された関数は変数Iを指しますが、すぐに実行されません。 f2(); // 16 3つの関数すべてが戻ったとき、私が参照した変数は4、f3()になりました。 // 16したがって、最終結果は閉鎖を返すときは16 ***です。覚えておいてください:ループ変数、または将来変化する変数を参照しないでください! loopループ変数を参照する必要がある場合はどうすればよいですか?この方法は、別の関数を作成し、関数のパラメーターを使用してループ変数の現在の値を結合することです。ループ変数がその後の時間にどのように変化するかに関係なく、関数パラメーターに結合した値は変更されていません:function count(){var arr = []; for(var i = 1; i <= 3; i ++){arr.push(function(n){return function(){return n*n;}}(i)); } return arr;} var results = count(); var f1 = results [0]; var f2 = results [1]; var f3 = results [2];アラート(f1()); // 1alert(f2()); // 4Alert(f3()); // 9 classクラスメカニズムのない言語では機能のみで、閉鎖の助けを借りて、プライベート変数はカプセル化された関数creat_counter(init){var n = init || 0; return {add:function(){n+= 1; n; }}} var c = creat_counter(); alert(c.add()); // 1alert(c.add()); // 2alert(c.add()); // 3 ***返されたオブジェクトでは、ローカル変数nを運ぶ閉鎖が実装され、変数nは外部コードからアクセスできません。言い換えれば、閉鎖は状態を運ぶ関数であり、その状態は外部から完全に隠すことができます。 math.pow(x、y)を使用してx^2またはx^3 //math.pow(x、y) - > x^yfunction make_pow(y){return function(x){return math.pow(x、y); }} var pow2 = make_pow(2)var pow3 = make_pow(3)alert(pow2(3))// 9alert(pow3(3))// 2722-ARROW関数(現在Firefoxによってのみサポートされています)//パラメーター=>関数本文
var f = x => x*xxxalert(f(3))// 27
23ジェネレーターフィボナッチシーケンスを生成します
function* fib(max){var t、a = 0、b = 1、n = 1; while(n <= max){evell a; t = a+b; a = b; b = t; n ++; } return a;} for(var x of fib(10)){// Generator object document.write(x+''); //出力0、1、1、2、3}ジェネレーターを使用して、自己具体的なID(グローバル変数不要)機能* next_id(){for(var x = 1; x <100; evelow x ++);} var g = {for(var x = 1; x <100; next_id(); alert(g.next()。value); // 1alert(g.next()。value); // 2alert(g.next()。value); // 3上記は、編集者からもたらされたJavaScriptの自己学習ノート(必見の記事)の完全な内容です。誰もがwulin.comをもっとサポートすることを願っています〜