JavaScriptの最終試験問題の文字列:「105」は「44」より大きいですか?「123 b」はNumberをどれぐらい変えますか?slice、substring、substrは負の数を伝えられますか?


JavaScriptの最終試験問題の文字列:「105」は「44」より大きいですか?「123 b」はNumberをどれぐらい変えますか?slice、substring、substrは負の数を伝えることができますか?など、文字列の常用操作をまとめます.
  • クライテリア
  • 、文字列の比較
  • .等しい比較
  • .サイズ比較
  • 、文字列変換Number
  • 、文字列加算は
  • を減らします.
  • 1.加算
  • .減算
  • 、文字列切り取り、置換などのよくある操作シーン
  • .シーン一、切り取り
  • (1)slice
  • (2)substring
  • (3)substr
  • まとめ(読み終わりました.分かりました.):
  • .シーン2、置換
  • .シーン3、オブジェクトと文字列変換
  • .場面四、文字列正則
  • .場面五、通訳
  • 前言
    StringはJavaScriptの基本変数の一つであり、比較的特殊な性質を持っています.その変数は変更できません.オブジェクトの作成には2つの方法があります.オブジェクトではなく、例var x=「Bill」となります.オブジェクト、例var y=new String(「ビル」).オブジェクト以外の方法で文字列を作成する場合、スタックにはポインタが格納され、Stringプールの定数を指します.オブジェクトを使用して作成する場合、スタックにはポインタが格納され、スタック中のSteringオブジェクトを指します.注意:1つの文字列変数を頻繁に削除しないでください.Stringは変数を変更することができないので、削除置換などの操作は実質的にはしばしば対象の作成と廃棄で、頻繁に操作して性能に影響します.
    一、文字列の比較
    1.等しい比較
    var x = "Bill";             
    var y = new String("Bill");
    var z = "Bill";
    x == y // true
    x === y // false
    x === z // true
    
    オブジェクト以外の文字列はString定数プールの値を比較し、対象文字列はポインタアドレスを比較します.また文字列変数を作成する場合はnewを使用して作成しないでください.実行速度が遅くなります.
    2.大きさの比較
    文字列間の比較は、まず文字列のASCIIコードを順番に取ってからASCIIコードが大きいと判断します.文字変換asciiコード:charCodeAt();asciiコードレンガ文字:from CharCode()を使用します.
    "105" > "44" // false
    "1" > "0987" // true
    "1.00004a" > "1.00004b" // false
    "absffz" > "absffA" // true
    
    最初の文字のASCIIコードから比較します.判断ができないなら、2番目の文字を比較して、これを類推します. A Z 65 90, a z 91 122具体的な各文字のコードスタンプ𗺸ここの文字列と数字の比較は𗺷参照できます.
    例:日付タイプが同じである場合、文字列フォーマットのサイズを直接比較して日付のサイズを判断することができます.例えば、「2020-05-01」「2020-04-02」
    二、文字列はNumberに変わります.
    5つの方法を提供します.Number()、parseInt()、parseFloat()、new Number()、*|/1は* | / 1で自動的に暗黙的にデジタルフォーマットに変換することを提案しています.効率が一番いいです.new Number()オブジェクトの作成方式を提案しないで、効率が一番低いです.
    var a = "123.01"
    var b = "123.01abc"
    var c = "a123.01bc"
    var d = "abc123"
    Number(a) // 123.01
    Number(b) // NaN 
    Number(c) // NaN
    Number(d) // NaN
    parseInt(a) // 123
    parseInt(b) // 123
    parseInt(c) // NaN
    parseInt(d) // NaN
    parseFloat(a) // 123.01
    parseFloat(a) // 123.01
    parseFloat(a) // NaN
    parseFloat(a)// NaN
    
    Number(" 123 ") // 123
    parseInt(" 123 ") // 123
    parseFloat(" 123  ") // 123
    // * | /
    a*1 , a/1 //  Number    
    
    まとめ:Numberは、空ではない数字を持つ文字をNaNに変えます.パーrseInt、パーrseFloatは、一度に解析文字が空ではない数字をNaNに変えます.これとは違って、前の数字の値をとります.1はNumberと同じ結果です.
    三、文字列の加算はマイナス
    1.加算
    "ab" + "b" // abb
    "ab" + "cd" // abcd
    
    2.減算
    "ab" - "b" // NaN
    "ab" - "cd" // NaN
    "123" - "12" // 111
    
    文字列以外の文字列がある場合は、♅を参照してください.
    四、文字列の切り取り、置換などのよくある操作シーン
    1.シーン一、切り取り
    (1)slice
    文法:stingObject.slice startが抽出するクリップの開始下付き.負の数であれば、このパラメータは文字列の末尾から計算される位置を規定しています.つまり、-1は文字列の最後の文字を指し、-2は下から2番目の文字を指し、これを類推します.endは抽出するフラグメントの末尾の下付き文字です.このパラメータが指定されていない場合、抽出するサブストリングは、startから元の文字列の最後までの文字列を含みます.このパラメータが負の場合、文字列の末尾から計算される位置を規定します.
    //   
    "abcd".slice(0) //"abcd"
    "abcd".slice() //"abcd"
    "abcd".slice(1,5) //"bcd"
    "abcd".slice(5,1) //""
    //          
    //start=-1 d  ,    ,end      0,    ,    
    "abcd".slice(-1) // "d"
    "abcd".slice(-1,1) //"d"
    "abcd".slice(-1,2) //"d"
    "abcd".slice(-1,-1) // "" 
    "abcd".slice(-1,-2) // ""
    //start=-3 b  ,end    >=-2    1,    
    "abcd".slice(-3,-2) // "b"
    "abcd".slice(-3,-1) // "bc"
    "abcd".slice(-3,2) // "b"
    "abcd".slice(-3,3) // "bc"
    //start=1 b  ,end    >=-2    1,    (          )
    "abcd".slice(1,-2) // "b"
    "abcd".slice(1,-1) // "bc"
    "abcd".slice(1,2) // "b"
    "abcd".slice(1,3) // "bc"
    
    説明:slice()メソッドは、文字列の一部を抽出し、抽出された部分を新しい文字列で返すことができる.Stringオブジェクトの方法slice()、substring()とsubstr()は、文字列の指定部分に戻すことができます.slice()はsubstring()より柔軟で、負の数をパラメータとして使用できるからです.slice()はsubstr()とは違って、2つの文字の位置でサブストリングを指定しますが、substr()は文字の位置と長さでサブストリングを指定します.なお、String.sliceはAray.sliceに似ています.
    (2)substring
    文法:stingObject.substring startが必要です.負でない整数は、抽出するサブストリングの最初の文字がストリングObjectの位置を規定しています.負の数は0を伝えるのに相当します.意味がないです.stopオプション.負ではない整数は、抽出するサブストリングの最後の文字より1つ多い.このパラメータを省略すると、返したサブストリングは文字列の最後まで続きます.負の数は0を伝えるのに相当します.意味がないです.
    //   
    "abcd".substring(0) //"abcd"
    "abcd".substring() //"abcd"
    "abcd".substring(1,5) //"bcd"
    "abcd".substring(1,2) // "b"
    "abcd".substring(5,1) //"bcd"
    "abcd".substring(4,2) //"cd"
    //        ,       ,   0
    "abcd".substring(-1) //"abcd"
    "abcd".substring(-1,5) //"abcd"
    "abcd".substring(1,-5) // "a"
    "abcd".substring(1,0) //"a"
    "abcd".substring(-1,-5) // ""
    "abcd".substring(0,0) // ""
    
    (3)substr
    文法:stingObject.substr(start,length)startが必要です.抽出するサブストリングの開始値を下に表示します.数値が必要です.負の数であれば、このパラメータ宣言は文字列の末尾から計算される位置です.つまり、-1は文字列の最後の文字を指し、-2は後ろから2番目の文字を指し、これを類推します.lengthオプションです.サブストリングの文字数.数値が必要です.このパラメータを省略すると、stingObjectの開始位置から最後の文字列に戻ります.負の値の場合は空の文字列を返します.
    //   
    "abcd".substr(0) //"abcd"
    "abcd".substr() //"abcd"
    "abcd".substr(1,5) //"bcd"
    //   
    "abcd".substr(-1) //"d"
    "abcd".substr(-1,5) //"d"
    "abcd".substr(-2,1) // "c"
    "abcd".substr(-2,-1) // ""
    "abcd".substr(2,-1) // ""
    
    説明:substr()のパラメータは、サブストリングの開始位置と長さを指定しますので、substring()とslice()の代わりに使用できます.startは負の数であってもいいです.意味があります.重要事項:ECMAScriptはこの方法を標準化していないので、それを使うことに反対します.重要事項:IE 4では、パラメータstartの値が無効となります.このBUGでは、startは0番目の文字の位置を規定しています.以降のバージョンでは、このバグは修正されました.
    まとめ(読み終わったらよく分かります):1.slice , , ; , , 2.substring , 0, ; slice 3.substr ECMAscript , ; , , , , 0, 2.場面二、置き換え
    replace文法:strigObject.replace(regexp/substr,replace)regexp/substrが必要です.サブ文字列または置換するモードのRegExpオブジェクトを指定します.この値が文字列の場合、最初にRegExpオブジェクトに変換されるのではなく、検索する直接量テキストモードとして使用されます.replaccementが必要です.文字列の値.テキストの置換または置換テキストを生成する関数が定められています.
    //    "Doe, John"     "John Doe"    
    let name = "Doe, John";
    name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
    //               :
    name = '"a", "b"';
    name.replace(/"([^"]*)"/g, "'$1'");
    //                    :
    name = 'aaa bbb ccc';
    uw=name.replace(/\b\w+\b/g, function(word){
      return word.substring(0,1).toUpperCase()+word.substring(1);}
      );
    
    実例:文字列はこぶを回転します.
    var str="border-bottom-color";
    function convertToCamelCase(str) {
     return str.replace(/-(\w)/g, function($0, $1) {
        return $1.toUpperCase();
      });
    };
    convertToCamelCase(str);
    
    説明:replocmentは文字列でもいいし、関数でもいいです.文字列である場合、各マッチは文字列に置き換えられます.ただし、replace mentの中の$字は特定の意味を持っています.以下の表に示すように、パターンマッチングから得られた文字列が置換に使われることを示しています.
    文字
    テキストを置換
    $1、$2、...、$99
    regexpの1番目から99番目のサブ表現にマッチするテキストです.
    $
    regexpに一致するサブストリング.
    $
    ピペット列の左側にあるテキストです.
    $
    ピペット列の右側にあるテキストです.
    $
    直接符号
    3.シーン3、オブジェクトと文字列の変換
    var obj={"a":"dt","b":"yuiyi"}
    var obj1={"a":"dt","b":{"a":"dt"}}
    var str = JSON.stringify(obj) // '{"a":"dt","b":"yuiyi"}'
    var str1 = JSON.stringify(obj1) //'{"a":"dt","b":{"a":"dt"}}'
    JSON.parse(str) // {a: "dt", b: "yuiyi"}
    JSON.parse(str1) //{a: "dt", b: {…}}
    
    オブジェクトの浅いコピーと、vueにおけるルーティングquery干渉のようなオブジェクトの順列化のために使用することができる.
    4.場面四、文字列正則
    文字列は4種類の正規表現を使用する方法をサポートしています.
    アプリ
    説明
    match()
    一つ以上の正規表現のマッチを見つけました.
    replace()
    正規表現と一致する部分列を置換します.
    search()
    正規表現にマッチする値を検索します.
    スプリット()
    文字列を文字列配列に分割します.
    具体的な使い方はw 3 cholを参考にしてください.
    5.場面五、転訳
  • は文字列の中の文字を不必要に変換しないでください.なぜですか?バックスラッシュは可読性を損なうので、必要な時だけ出現します.
  • // bad
    const foo = '\'this\' \i\s \"quoted\"';
    
    // good
    const foo = '\'this\' is "quoted"';
    const foo = `my name is '${name}'`;
    
  • 正規表現および改行、\tタブなどの特殊文字用途で、変換は
  • を追加しなければなりません.
    コード
    結果
    \b
    タブキー
    \f
    ページを換える
    新しい行
    \r戻ります
    \t
    水平タブ
    \v
    垂直タブ
    //           
    let reg = /^\d{1,3}(,\d{3})*(\.\d{1,2})?$/
    //            
    let reg1 = /\/|\\/
    reg1.test("\\") // true
    
    参考文献:https://github.com/airbnb/javascript#strings https://www.w3school.com.cn/js/js_ストリングス.asphttp://c.biancheng.net/c/ascii/