Node.js+MongoDB+AnglarJS-2 Javascript基礎


node.jsを勉強する時、javascriptに対する復習とします.詳しい基礎として説明しないで、簡単なのは大体一回だけです.
1.変数の定義
varキーワードを使う
var myData ;
var myString = 'Some Text' ;
var newString = myString + ' some More Text' ;
ネーミングルール:アルファベット、米ドルまたは_でなければなりません.先頭にスペースが含まれていません.大文字と小文字を区別する
2.Javascriptデータの種類を知る
  • 文字列(String)
    var myString = 'Some Text' ;
    var anotherString = 'Some More Text' ;
  • 数値(Number)
    var myInteger = 1 ;
    var cost = 1.33 ;
  • 配列
    var arr = { 'one', 'two', 'three' } ;
    var first = arr[ 0 ] ;
  • オブジェクトの字面量(Object)
    var obj = { 'name': 'Brad', 'occupation': 'Hacker', 'age': 'Unknow' } ;
    var name = obj.name ;
  • 空(Null)
    var newVar = null ;
    注意:Javascriptは無種類の言語です.スクリプトには変数を指定するデータの種類が必要ではありません.インタプリタは、ある変数の正しいデータタイプを自動的に推定します.また、異なるタイプの値をタイプの変数に割り当てることができます.
  • 3.演算子を使う
    3.1.演算子
    演算子
    説明

    追加
    を選択します.
    マイナス

    乗ずる
    を選択します.
    除算
    %
    型(除法の剰余)
    ++
    インクリメント

    逓減する
    注意:+演算子を使って文字列を接続したり、文字列と数値を加算したりすることもできます.これは文字列を素早く接続し、出力文字列に数値データを追加することができます.
    3.2値演算子
    演算子

    演算子に相当します.
    を選択します.
    x=5
    x=5
    +=
    x+=5
    x=x+5

    x-=5
    x=x-5
    *=
    x*=5
    x=x*5
    //
    x/=5
    x=x/5
    %=
    x%=5
    x=x%5
    3.3.比較と条件演算子の運用
  • 比較演算子
  • 演算子
    説明
    ==
    イコール(値のみ)
    ==
    値とタイプは同じです.
    !=
    等しくない
    !==
    値とタイプは同じではありません.
    >
    大きい>=大きいか等しい
    <>
    以下
    <=
    小なりイコール
    -論理演算子
    演算子
    説明
    &&&
    そして
    !
    いいえ、
    -if文
    if( x == 5 ) {
        do_something() ;
    }
    
    if( x == 5 ) {
        do_something() ;
    } else {
        do_something_else() ;
    }
    
    if( x < 5 ) {
        do_something() ;
    } else if( x < 10 ) {
        do_something_else() ;
    } else {
        do_nothing() ;
    }
  • switch文
  • switch(     ) {
    case value1: 
        <      > break ; case value2: <      > break ; default: <    value1   value2      > }
    この値は文字列、数値、ブール値、またはオブジェクトとすることができます.各case文は最後にbreak文を含み、switch文から中断することを表します.*
    4.サイクル
    4.1.while
    var i = 1 ;
    while( i < 5 ) {
        console.log( 'Iteration ' + i ) ;
        i++ ;
    }
    4.2.do/while
    var i = 0;
    do {
        console.log( 'Iteration ' + i ) ;
        i++ ;
    } while( i <  5 ) ;
    4.3.for
    for(   ;   ;    ) {
        <      > }
    4.4.for/in
    var days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;
    for( var idx in days ) {
        console.log( 'It's ' + days[ idx ] + '<br>' ) ; }
    4.5.サイクルを中断する
  • break
  • var days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;
    for( var idx in days ) {
        if( days[ idx ] == 'Wednesday' ) break ;
        console.log( 'It's ' + days[ idx ] + '<br>' ) ; }
  • continue
  • var days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;
    for( var idx in days ) {
        if( days[ idx ] == 'Wednesday' ) continue ;
        console.log( 'It's ' + days[ idx ] + '<br>' ) ; }
    5.関数の作成
    コードを再利用するために
    5.1.定義関数
    キーワード:function
    function myFunction() {
        console.log( 'Hello World' ) ;
    }
    
    myFunction() ;
    5.2.伝達変数の関数
    function greeting( name, city ) {
        console.log( 'Hello ' + name ) ;
        console.log( '. How is the weather in ' + city ) ;
    }
    
    var name = 'Brad' ;
    
    greeting( name, 'Florence' ) ;
    5.3.関数の戻り値
    function formatGreeting( name, city ) {
        var retStr = '' ;
        retStr += 'Hello <b>' + name + '/n' ;
        retStr += 'Welcome to ' + city + '!' ;
        return retStr ;
    }
    
    var greeting = formatGreeting( 'Brad', 'Rome' ) ;
    console.log( greeting ) ;
    5.4.匿名関数
    console.log( doCalc( 5, 10, function( n1, n2 ) {
        return n1 + n2 ;
    } ) ) ;
    匿名関数の利点:コードの他の場所で使用されないものを公式に定義する必要はありません.したがって、匿名関数は、Javascriptコードをより簡潔に読みました.
    6.変数スコープ
    var myVar = 1 ;
    function writeIt() {
        var myVar = 2; 
        console.log( 'Variable = ' + myVar ) ;
        writeMore() ;
    }
    function writeMore() {
        console.log( 'Variable = ' + myVar ) ;
    }
    writeIt() ;
    7.Javascriptオブジェクト
    オブジェクトを使用するのは一つの関数セットだけではなく、クリーンで効率的に繰り返し使用できるJavascriptコードを作成するための鍵です.
    7.1.使用対象文法
    一つのオブジェクトは実際には一つのコンテナにすぎません.複数の値と関数を組み合わせます.オブジェクトの値を属性と呼び、オブジェクトの関数をメソッドと呼びます.キーワード:new
    var x = new Number( '5' ) ;
    オブジェクト文法:オブジェクト名を使用して、ポイント、属性または方法の名前を指定します.
    var s = myObj.name ;
    myObj.name = 'new Name' ;
    
    var name = myObj.getName() ;
    myObj.getName = function() {
        return this.name ;
    }
    オブジェクトを作成
    var obj = {
        name: 'My Object',
        value: 7,
        getValue: function() {
            return this.value;
        }
    }
    また、object propertyNameの文法を使ってJavascriptオブジェクトのメンバーを訪問することもできます.
    var propName = 'User Name' ;
    var val1 = myObj[ propName ] ;
    var val2 = myObj[ 'Other Name' ] ;
    7.2.カスタムオブジェクトの作成
  • 一:
  • var user = new Object() ;
    user.first = 'Brad' ;
    user.last = 'DayLey' ;
    getName = function() {
        return this.first + ' ' + this.last ;
    }
  • :
  • var user = {
        first: 'Brad',
        last: 'Dayley',
        getName: function() {
            return this.first + ' ' + this.last ;
        }
    }
  • 3:
  • function User( first, last ) {
        this.first = first ;
        this.last = last ;
        this.getName = function() {
            return this.first + ' ' + this.last ;
        }
    }
    
    var user = new User( 'Brad', 'Dayley' ) ;
    7.3.原型オブジェクトモードを使用する
    プロトタイプで定義されている関数は、新しいオブジェクトを作成するたびに作成されるのではなく、Javascriptロード時に作成されます.
    function UserP( first, last ) {
        this.first = first ;
        this.last = last ;
    }
    UserP.prototype = {
        getFullName: function() {
            return this.first + ' ' + this.last ;
        }
    }
    8.文字列
    Stringオブジェクトは、これまでJavascriptで最も一般的だったオブジェクトです.文字列データタイプの変数を定義すると、Javascriptは自動的にStringオブジェクトを作成します.
  • Stringオブジェクトの変換コード
  • トランスコード
    説明
    \'
    単引用符
    \u 0026 quot;
    二重引用符
    \
    バックスラッシュ
    行の区切り
    \r
    回車符
    \t
    タブ
    \b
    脱格符
    \f
    改ページ符
    -Stringオブジェクトの方法
    方法
    説明
    charAt(index)
    指定された索引の文字を返します.
    charCodeAt(index)
    指定された索引のUnicode値を返します.
    concat(str 1,str 2,…)
    2つ以上の文字列を接続し、接続後の文字列のコピーを返します.
    from CharCode()
    Unicode値を実際の文字に変換します.
    indexOf(subString)
    指定されたsubString値の最初の出現位置を返します.subStringが見つからなかったら、-1に戻ります.
    lastIndexOf(subString)
    指定されたsubString値の最後に出現した位置を返します.subStringが見つからなかったら、-1に戻ります.
    match(regex)
    文字列を検索し、正規表現のすべてのマッチを返します.
    replace(subString/regex,replaccemenntString)
    検索文字列の文字列または正規表現がマッチし、新しいマッチするサブストリングを新しいサブストリングで置換します.
    search(regex)
    正規表現に基づいて文字列を検索し、最初のマッチする位置を返します.
    slice(start,end)
    文字列のstartとend(含まない)位置の間の部分の新しい文字列を返します.
    スプリット(sep,limit)
    区切り記号または正規表現に基づいて、文字列をサブ文字列配列に分割します.オプションのlimitパラメータは、最初から分割を実行する最大数を定義します.
    substr(start,length)
    文字列の先頭のstart位置から、指定された文字の長さに応じて文字を抽出します.
    substring(from,to)
    fromとto(含まない)の間の文字索引のサブストリングを返します.
    LowerCase()
    文字列を小文字に変換
    toUpperCase()
    文字列を大文字に変換
    valueOf()
    元の文字列の値を返します.
    8.1.文字列の結合
    +操作または最初の文字列のconcat()関数を使って複数の文字列を結合します.
    var word1 = 'Today ' ;
    var word2 = 'is ' ;
    var word3 = 'tomorrows\' ' ;
    var word4 = 'yesterday.' ;
    var sentence1 = word1 + word2 + word3 + word4 ;
    var sentence2 = word1.concat( word2, word3, word4 ) ;
    8.2.文字列でサブストリングを検索する
    var myStr = 'I think, therefore I am.' ;
    if( myStr.indexOf( 'think' ) != -1 ) {
        console.log( myStr ) ;
    }
    8.3.単語を一つの文字列に置換する
    var username = 'Brad' ;
    var output = '<username> place enter your password: ' ;
    output.replace( '<username>', username ) ;
    8.4.文字列を配列に分割する
    var t = '12:10:36' ;
    var tArr = t.split( ':' ) ;
    var hour = tarr[ 0 ] ;
    var minute = tArr[ 1 ] ;
    var sencond = tArr[ 2 ] ;
    9.配列
    方法
    説明
    concat(arr 1,arr 2,…)
    配列とパラメータとして伝達される配列の接続コピーを返します.
    indexOf(value)
    配列中のvalueの最初の索引を返します.または、該当項目が見つからない場合は、-1を返します.
    ジョイン(separator)
    一つの配列のすべての要素をseparatorに分割された単一の文字列に接続します.区切り記号が指定されていない場合は、コンマを区切り記号として使用します.
    lastIndexOf(value)
    配列中のvalueの最後のインデックスを返します.この項目がない場合は-1を返します.
    ポップ()
    配列の最後の要素を削除し、要素を返します.
    push(item 1,item 2,...)
    配列の最後に新しい要素を追加し、行列の新しい長さを返します.
    逆転()
    反転配列のすべての要素の順序
    shift()
    配列の最初の要素を削除し、要素を返します.
    slice(start,end)
    startとendインデックスの要素を返します.
    sort(sortFunction)
    配列を並べ替えます.SortFunctionはオプションです.
    splice(index,count,item 1,item 2.)
    indexで指定されたインデックスでcountエントリを削除し、パラメータとして入ってくる任意のオプション項目をindexに挿入します.
    toString()
    行列の文字列形式を返します.
    unshift()
    新しい要素を配列の先頭に追加し、新しい長さを返します.
    valueOf()
    方法は、行列オブジェクトの元の値を返します.
    9.1.統合配列
    var arr1 = [ 1, 2, 3 ] ;
    var arr2 = [ 'three', 'four', 'five' ] ;
    var arr3 = arr1 + arr2 ;
    var arr4 = arr1.concat( arr2 ) ;
    9.2.エルゴード配列
    var week = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;
    for( var i = 0; i < week.length, i++ ) {
        console.log( '<li>' + week[ i ] + '</li>' ) ;
    }
    for( dayIndex in week ) {
        console.log( '<li>' + week[ dayIndex ] + '</li>' ) ;
    }
    9.3.データを文字列に変換する
    var timeArr = [ 12, 10, 36 ] ;
    var timeStr = timeArr.join( ':' ) ;
    9.4.配列が触る項目を含むかどうかを確認する
    function message( day ) {
        var week = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;
        if( week.indexOf( day ) != -1 ) {
            console.log( 'Happy ' + day ) ;
        }
    }
    10.エラー処理
    キーワード:try/catch/finally
    10.1.try/catch
    try{
        var x = badVarName ;
    } catch( err ) {
        console.log( err.name + ': "' + err.message + ' " occurred when assigning x.' ) ;
    }
    10.2.自分のミスを投げ出す
    function sqrRoot( x ) {
        try {
            if( x == '' ) throw { message: "can't Square Root Nothing" } ;
            if( isNaN(x) ) throw { message: "can't Square Root Strings" } ;
            if( x < 0 ) throw { message: "Sorry No Imagination" } ;
            return "sqrt( " + x + " )" + Math.sqrt( x ) ;
        } catch ( err ) {
            return err.message ;
        }
    }
    10.3.finally
    function testTryCatch( value ) {
        try {
            if( value < 0 ) {
                throw 'too small' ;
            } else if( value > 10 ) {
                throw 'too big' ;
            } 
            your code here ;
        } catch ( err ) {
            console.log( 'The number was ' + err ) ;
        } finally {
            console.log( 'This is always written' ) ;
        }
    }