忘れる前に覚書。優しい文章を目指します。
ザ・覚書 ザ・覚書
出来るだけ子供にも、わかりやすいように書いて行きたいと思います。

PCバージョンでサイトを表示しています。

【ザ・覚書 3クリックアンケート実施中】
暑さの一番の原因はなんだと思いますか?
あなたの支持する政党はどの党ですか?
ページを見て下さって、 ありがとうございます。この内容に関する情報があれば下の掲示板にでも書き込み下さい。

JavaScript 明示的な変数宣言と文字コードの取得(charCodeAt)


  スポンサーリンク

☆JavaScript 明示的な変数宣言と文字コードの取得(charCodeAt)
今のページの関連ページのリストへ
ザ・覚書のトップページに戻る

結果は、前回の「JavaScript 計算してみる(parseInt)」と同じなんですが、処理が違います。

今度は、文字コードをみて、半角数値かどうか判断させます。
このページは、文字コードUTF-8で作っているので、そのコードで判断してみました。

また、JavaScriptの変数宣言は、通常明示的ではないようですので、Cに慣れた私にはイライラします。
そこで、明示的に設定してみました。

前回と同じ足し算です。
箱の1個目と2個目に数値を入れて「=ボタン」を押してみてください。


コードの説明を書いておきます。

・HTML部分




<FORM name="form1">
  <INPUT size="25" type="text" name="A">
  +
  <INPUT size="25" type="text" name="B">
  <INPUT type="button" value="=" onclick="Main( this.form )">
  <INPUT size="25" type="text" name="X">
</FORM>



前とほぼ一緒です。
関数名を変えました。

・スクリプト部分



// 半角数字かどうかを判断する関数
// 戻り値 TRUE:半角 FALSE:半角数字じゃないか、半角数字だけじゃない
function HankakuSuujidesuka( mojiretu )
{
    var i = new Number();           // 作業変数
    var mojicode = new String();    // 文字コードを入れる用
    var flag = new Boolean( 0 );    // 判断を入れる用

    // 文字の長さ分ループさせる
    for ( i = 0; i < mojiretu.length; i++ )
    {
        // 指定した1個の文字の文字コードを取得
        mojicode = mojiretu.charCodeAt( i );

        // 半角数字かどうかみる UTF-8の数値のコード範囲か?
        if ( ( mojicode >= 0x30 ) && ( mojicode <= 0x39 ) )
        {
            //document.write("1");
            flag = true;
        }
        else
        {
            flag = false;
            break;  //  数値以外が見つかったらforをやめる
        }
    }
    return  flag;
}

function Main( obj )
{
    var num0 = new String( obj.elements[ 0 ].value );
    var num1 = new String( obj.elements[ 1 ].value );
    var bnum0 = new Boolean( 0 );
    var bnum1 = new Boolean( 0 );

    // 半角数字かな?
    bnum0 = HankakuSuujidesuka( num0 );
    bnum1 = HankakuSuujidesuka( num1 );

    // どっちも整数値かな? 
    if ( ( bnum0 == true ) && ( bnum1 == true ) )
    {
        // 同じなら
        num0 = parseInt( num0, 10 ); // 整数値に変換 
        num1 = parseInt( num1, 10 ); // 整数値に変換 
        obj.elements[3].value = num0 + num1;
    }
    else
    {
        // 整数値でない
        obj.elements[3].value = "半角で整数値をいれてね";
    }
}

</SCRIPT>




・明示的な宣言


通常、
var i;
としている所を
var i = new Number();
こんな感じにする事で、「i」を、Nunberオブジェクトにするようです。

個人的に、明示的な方がスッキリします。
JavaScriptの変数宣言は、通常明示的ではないようですので、宣言ミスはバグの元になるCに慣れた私にはイライラするのです。
こっちの方が見ててわかりやすいですし。
JavaScriptは、JavaScriptと割り切って、通常は、varだけでしますが、今回は特別に勉強がてらにしときます。

他には、型には、StringとBooleanがあるようでしたので、それも使ってみました。


JavaScriptって、C++のBOOL型の
BOOL flag;
という簡単宣言が出来ないんですね・・・。
何も考えず、Cと同じように書いて、コードが通らないので、結構手間取りました。

わざわざ、こう書かないといけないようです。
var flag = new Boolean( 0 );

わざわざBOOL型でしなくても、数値型でも良いんですが。

また、大文字の「TRUE」や「FALSE」も使えないんですね・・・。

あと、普通だとnewしたらdeleteしないとメモリに溜まると思うのですが、
JavaScriptは、ガベージコレクション(動的に確保したメモリ領域のいらない領域を勝手に開放)というので、
関数の実行終了時に削除してくれるらしいのですが、本当なのかな?

JavaScriptで、大きいシステムは作る気はありませんが、長い処理の関数でいっぱい変数使えば解放って必要になってくるんじゃないのかな?


・文字コードの取得




// 指定した1個の文字の文字コードを取得
mojicode = mojiretu.charCodeAt( i );

// 半角数字かどうかみる UTF-8の数値のコード範囲か?
if ( ( mojicode >= 0x30 ) && ( mojicode <= 0x39 ) )



の部分です。

ここは、文字コードを1文字ずつ取得して、半角数値「0から9」かな? と見ています。
「charCodeAt」が、JavaScriptに元々ある関数です。


しょーもないプログラムですが、第2歩です。


記述:2014年03月頃

(一言掲示板は、下の方にあります。)

Twitter Facebook Google+ はてな Pocket LINE


  スポンサーリンク


Amazonで『JavaScript』を検索
今のページの関連ページのリストへ
ザ・覚書のトップページに戻る
全ページのリストへ

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

徹底マスター JavaScriptの教科書 プログラミングの教養から、言語仕様、開発技法までが正しく身につく

いちばんやさしいJavaScriptの教本 人気講師が教えるWebプログラミング入門(「いちばんやさしい教本」シリーズ)

確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発
amazonで検索
商品更新日時:
2017/03/27 19:43:39

JavaScript Projects for Kids【電子書籍】[ Syed Omar Faruk Towaha ]

Learning CSS3 Animations and TransitionsA Hands-on Guide to Animating in CSS3 with Transforms, Transitions, Keyframes, and JavaScript【電子書籍】[ Alexis Goldstein ]

ppk on JavaScript【電子書籍】[ Peter-Paul Koch ]

ライブラリを使う前に読んでほしいJavaScriptの心得【電子書籍】[ 園田誠 ]

JavaScript i jQuery. Nieoficjalny podr?cznik【電子書籍】[ McFarland ]

Data Visualization with Python and JavaScriptScrape, Clean, Explore & Transform Your Data【電子書籍】[ Kyran Dale ]
楽天ウェブサービスセンター
商品更新日時:
2017/03/27 19:43:39

一言掲示板です。なにかありましたら以下に書いて書き込みボタンを押して下さい。
管理人による書き込みの確認後、荒らし書き込みでない場合に表示させていただきます。
悪意ある書き込みや挑発的な書き込みと思われる内容は、表示させません。
その為、ちょっと書き込みから表示までに時間がかかってしまいます。ご了承下さい。

(新機能)URLの書き込みも可能にしましたが、内容と関係のないリンクの表示はしないと思います。
また自サイトへのリンクURL書き込みの場合、相互リンクもお願い致します。
お名前

コメント






本日、よく見られるページ
衆議院・参議院 議員数の党別割合
コピペ用 都道府県一覧
家庭用の普通のコンセントは、何Wまで使えるのか?
木材の引き戸の滑りを良くする方法
国会の日程が分からない
「忖度(そんたく)」とはどういう意味か?
ガンダム世界の世界地図とコロニーとかの位置
労働者が、会社を訴える時の手続き方法
地球から月までの距離
尿はどれくらい溜められるものか?(熟睡できない)
  スポンサーリンク

今のページの関連ページのリストへ
ザ・覚書のトップページに戻る
全ページのリストへ