JavaScriptの isFinite とは?

このQ&Aのポイント
  • JavaScriptの「isFinite」は、数字が有限かどうかを判断するための関数です。
  • 具体的には、指定された値が、無限大やNaN(非数値)ではない有限の値である場合にはtrueを返し、それ以外の場合にはfalseを返します。
  • この関数は、主に数字のバリデーションやエラーチェックのために利用されます。
回答を見る
  • ベストアンサー

javascript isFinite

JavaScriptです。9行目の「 isFinite 」では数字が有限かどうかを見ているみたいなのですが日本語にすると具体的にはどういった意味なのでしょうか? 調べてみたところ数字が有限かどうかを調べるものみたいなのですが 何をもって有限を判断しているのかわからなかったので わかるひとがいらっしゃいましたら解説願いたいです。 --------- // 郵便番号 if (yubin == ""){ $("#error_yubin").html("郵便番号を入力してください。"); if (result) { var p = $("#lbl_yubin").offset().top - header; $('html,body').animate({scrollTop: p}, 'fast'); } result = false; } else if (!isFinite(yubin)){ $("#error_yubin").html("郵便番号が不正です。"); if (result) { var p = $("#lbl_yubin").offset().top - header; $('html,body').animate({scrollTop: p}, 'fast'); } result = false; }else if (yubin.length < 7 ){ $("#error_yubin").html("郵便番号が不正です。"); if (result) { var p = $("#lbl_yubin").offset().top - header; $('html,body').animate({scrollTop: p}, 'fast'); } result = false; } ---------

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8021/17145)
回答No.1

数値でなければ(NaN),isFiniteはfalse Infinity(正負の両方)でなければ,isFiniteはfalse それ以外はtrue そうするに名前の通り有限の数値であるかどうかを判定します。

関連するQ&A

  • JavaScriptのプログラムについて

    $(function(){ $("#top a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) $("#question a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) $("#q001 a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) $("#q002 a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) $("#q003 a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) $("#q004 a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) }); ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ HTMLは少し分かりますが JavaScriptがまったく分からない素人です。 ネットで調べて上記のようにプログラムし ページ内リンクを流れるようにスクロールさせることは出来ました。 まずこのプログラムの書き方で合っていますでしょうか? また、同じ記述が繰り返されているので短くしてやろうと自分なりに $("#q001 a") $("#q002 a") $("#q003 a") $("#q004 a") $("#q005 a").click(function(){ $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing'); return false; }) ↑のような全くの当て推量の書き方をしてみましたが動作しませんでした。 省略したり短く出来る余地があればそれも教えていただきたいです。 分かる方がおられましたらお願いします。

  • jquery 追従メニュー IEについて

    下記jqueryを使って追従メニューを制作した時に、IEで確認すると限りなくスクロールできてしまいます。 解決する方法を検索しましたがわかりませんでした。 どなたかお分かりの方教えてください。 よろしくお願いします。 <script type="text/javascript"> $(function() { var offset = $("#leftcontent2").offset(); var topPadding = 15; $(window).scroll(function() { if ($(window).scrollTop() > offset.top) { $("#leftcontent2").stop().animate({ marginTop: $(window).scrollTop() - offset.top + topPadding }); } else { $("#leftcontent2").stop().animate({ marginTop: 0 }); } }); }); </script>

  • javascriptの記述方法おしえてください。

    以前こちらで質問し自己解決に至ったのですが、 もっと簡単スマートにスクリプトを記述したいのですが、 どのような記述をすれば良いかご教授ください。 //ここから var flg1=1,flg2=0,flg3=0,flg4=0   $(window).on('scroll', function() {     if($('#contents01').offset().top <= $(window).scrollTop() && $('#contents02').offset().top-1 >= $(window).scrollTop()) { if(flg1==0){ $('.nav1').stop(true,true).fadeTo(100,0.3).stop(true,true).fadeTo(500,1); flg1=1,flg2=0,flg3=0,flg4=0 } } if($('#contents02').offset().top <= $(window).scrollTop() && $('#contents03').offset().top-1 >= $(window).scrollTop()) { if(flg2==0){ $('.nav2').stop(true,true).fadeTo(100,0.3).stop(true,true).fadeTo(500,1); flg1=0,flg2=1,flg3=0,flg4=0 } } if($('#contents03').offset().top <= $(window).scrollTop() && $('#contents04').offset().top-1 >= $(window).scrollTop()) { if(flg3==0){ $('.nav3').stop(true,true).fadeTo(100,0.3).stop(true,true).fadeTo(500,1); flg1=0,flg2=0,flg3=1,flg4=0 } } if($('#contents04').offset().top <= $(window).scrollTop() && $('#contents04').offset().top-1+$('#contents04').height() >= $(window).scrollTop()) { if(flg4==0){ $('.nav4').stop(true,true).fadeTo(100,0.3).stop(true,true).fadeTo(500,1); flg1=0,flg2=0,flg3=0,flg4=1 } }   }); //ここまで 上記スクリプトは1部ですが、 このスクリプト部分で、 フラグを立てイベントを実行する、 しないの判別をさせています。 参考までに http://www11.ocn.ne.jp/~website/sample2/index.htm

  • cssのtranslateYを変えたい

    知識のある方、教えていただきたいです。 やりたいことは、jqueryでtranslateYにscrollTop - offsetTopを代入するということです。何が間違っているのでしょうか。 $('#tableLayout table thead').css('transform', 'translateY(' + scrollTop - offsetTop + 'px)'); headerFix(); function headerFix(){ var $header = $('#tableLayout thead'), offsetTop = $header.offset().top, windowHeight = $(window).height(); $(window).on('load scroll orientationchange resize' , function(){ var scrollTop = $(window).scrollTop(); if (scrollTop >= offsetTop){ $('#tableLayout table thead').css('transform', 'translateY(' + scrollTop - offsetTop + 'px)'); }else{ }; }); }

  • メインウィンドウサイズの高さを500ピクセル以下に制限する方法を教えてください。

    お世話になっております。 現在、スクロールメニューバーでコンテンツを作っていますが、 スクロールするメニューの高さよりウインドウの高さを小さくすると、 エクセルの様にスクロールバーが永遠と続きます。 苦肉の策として、ウインドウの高さをメニューバーの高さより小さく出来ないようにしようと考えましたが、方法がわかりません。 教えてください。 ちなみに、現状のjavascriptは下記のものを使用しています。 <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script> <script type="text/javascript"> $(function() { var offset = $("#sidebar").offset(); var topPadding = 15; $(window).scroll(function() { if ($(window).scrollTop() > offset.top) { $("#sidebar").stop().animate({ marginTop: $(window).scrollTop() - offset.top + topPadding }); } else { $("#sidebar").stop().animate({ marginTop: 0 }); }; }); }); </script>

  • jqueryの$()について

    貴重な場を借りて質問させていただきます。下記のコードはページ内リンクをさせるコードなのですが、※他のサイトからコピペしてます。 2点ほどお聞きしたいことがあります。 一点目はfunction()の()内に$をいれているのはなぜでしょうか。私が書く際にはつけたことがなくて気になりました。 二点目は、targetという変数を作りったのにも関わらず、それをまた$()内 にいれ、$(target)としている理由がわからず、おしえていただけませんでしょうか。 jQuery(document).ready(function($) { $('a[href^=#]').click(function() { if ($(this).hasClass('scroller')) { var target = $(this).attr('href'); if (target != '#') { target = $(target).offset().top; $('html,body').animate({ scrollTop:target },1500,'quart'); } else { $('html,body').animate({ scrollTop:0 },1500,'quart');

  • javascriptエラーの解決策について

    かなりの初心者で他のサイトのソースを借りて改変しています。 どうしても「オブジェクトでサポートされていないプロパティまたはメソッドです」というエラーが消えません。 出来れば具体的な対応策をご教授いただけましたら幸いです。 var startX; var moveX; var diffX = 0; var link_value=''; var adstartY; var admoveY; $(function() { var box = $("#menu-ul")[0]; var touchHandler = getTouchHandler(); box.addEventListener("tmove", touchHandler, false); box.addEventListener("tcst", touchHandler, false); box.addEventListener("tchend", touchHandler, false); document.addEventListener("tmove", getTouchHandlerdoc(), false); document.addEventListener("tcst",getTouchHandlerdoc(), false); document.addEventListener("tchend", getTouchHandlerdoc(), false); $("#item0")[0].addEventListener("tcst", getTouchHandlera('0'), false); $("#item1")[0].addEventListener("tcst", getTouchHandlera('1'), false); $("#item2")[0].addEventListener("tcst", getTouchHandlera('2'), false); $("#item3")[0].addEventListener("tcst", getTouchHandlera('3'), false); $("#item4")[0].addEventListener("tcst", getTouchHandlera('4'), false); $("#item5")[0].addEventListener("tcst", getTouchHandlera('5'), false); $("#item6")[0].addEventListener("tcst", getTouchHandlera('6'), false); /* $("#item9")[0].addEventListener("tcst", getTouchHandlera('9'), false); */ $("#menu-prev-btn")[0].addEventListener("tcst", getTouchHandlerb('prev'), false); $("#menu-next-btn")[0].addEventListener("tcst", getTouchHandlerb('next'), false); $("#menu-prev-btn")[0].addEventListener("tchend", getTouchHandlerb('prev'), false); $("#menu-next-btn")[0].addEventListener("tchend", getTouchHandlerb('next'), false); }); function getTouchHandlerdoc() { return function(e) { if (e.type == "tcst") { $('#footer_ad').hide(); $('#footer_ad').stop(); adstartY = touch.pageY; } else if (e.type == "tmove") { admoveY = touch.pageY - adstartY; if ((admoveY < 20) && (admoveY > -20)){ $('#footer_ad').css('position','absolute'); $('#footer_ad').css('top',document.body.clientHeight + 'px'); } } else if (e.type == "tchend") { $('#footer_ad').show(); } }} function getTouchHandlerb(param) { return function(e) { e.preventDefault(); if (e.type == "tcst") { link_value = param; if(param == "prev"){ timer_prev(); }else if(link_value == "next"){ timer_next(); } } else if (e.type == "tchend") { } }} function getTouchHandlera(param) { return function(e) { //e.preventDefault(); if (e.type == "tcst") { link_value = $('#item'+param+' a').attr('href'); } }} function getTouchHandler() { var sTime = 0; var moveX = 0; return function(e) { //e.preventDefault(); var touch = e.touches[0]; if (e.type == "tcst") { startX = touch.pageX; moveX = 0; startX = startX - diffX; sTime = (new Date()).getTime(); } else if (e.type == "tmove") { //e.preventDefault(); diffX = touch.pageX - startX; moveX = diffX; if (diffX > 0){ diffX = 0; } if (diffX < -320){ diffX = -320; } $("#menu-ul").css("left", diffX + "px"); //$("#menu-ul").animate({left:diffX + 'px'},10); } else if (e.type == "tchend") { //e.preventDefault(); var t = (new Date()).getTime() - sTime; if ((moveX < 10) && (moveX > -10)){ location.href=link_value; } } } } $(window).scroll(function () { var win = window.innerHeight; var offsettop = $("#page").offset().top; var offsettop = window.pageYOffset; var adposition = offsettop + win - 50; var adstartposition = offsettop + win + 60; $('#footer_ad').css('position','absolute'); $('#footer_ad').css('top',adstartposition); $("#footer_ad").animate({top:adposition + 'px'},500) }); window.onorientationchange = function() { var win_width = $(window).width(); $('#menu-frame').css('width',(win_width - 54) + 'px'); $('#menu-frame').css('overflow','hidden'); } $(document).ready(function () { var win_width = $(window).width(); $('#menu-frame').css('width'

  • javascriptの動作で困ってます。

    動作不良が三箇所あります。 プログラムに詳しい方がいらっしゃいましたら原因を教えて下さい。 ・未入力の質問をアラートで一括表示させたいのですが、 (3)のテキストエリアの箇所が未入力なのにアラートに表示できません。 判定のtrueとfalseを逆にして試すと、(3)のアラートは表示されるものの、記入しても アラートが出続けます。 ・1度しか指定していないにも関わらず同じ内容の警告アラートが2回出てしまう原因が分かりません。 ・入力した項目や選択した項目に関しては未入力項目のアラートとは別のアラートを用意してvalueの値をアラートで一括表示させたいのですが、関数を定義しているにも関わらず、関数が定義されていないとエラーメッセージが帰ってきて、表示されません。 ソースコードは以下になります。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function check(){ var msg = ""; var msg2 = ""; var str = document.form.id.value; var str2 = document.form.pass.value; if (str.match(/[^0-9]+/)) { alert("客番号は数字のみ"); } if (str.length>5) { alert("客番号は4~5桁"); } if(str.length<4){ alert("客番号は4~5桁"); } if(str==""){ msg += "客番号が未入力です。\n"; }else{ msg2 += document.form.id.value; } if(str2==""){ msg += "パスワードが未入力です。\n"; }else{ msg2 += document.form.pass.value; } if(radioCheck()==false){ msg += "(1)が未入力です。\n"; } if(checkboxCheck()==false){ msg += "(2)が未入力です。\n"; } if(textareaCheck()==false){ msg += "(3)が未入力です。\n"; } if(selectCheck()==false){ msg += "(4)が未入力です。\n"; } if(msg != ""){ //メッセージを出力 alert(msg); } if(radioCheck()==true){ msg2 += document.form.eng.value ; } if(checkboxCheck()==true){ msg2 += document.form.lang.value ; } if(txtareaCheck()==true){ msg2 += document.form.opinion.value ; } if(selectCheck()==true){ msg2 += document.form.age.value ; } if(msg2 != ""){ //メッセージを出力 alert(msg2); } } function radioCheck(){ var count = 0; var eng=document.getElementsByName("eng"); for(var i=0;i<eng.length;i++){ if(eng[i].checked){ count++; } } if(count != 0){ return true; } else{ return false; } } function checkboxCheck(){ var count = 0; var checklist=document.getElementsByName("lang[]"); for(var i= 0;i<checklist.length;i++){ if(checklist[i].checked){ count++; } } if(count != 0){ return true; } else{ return false; } } function textareaCheck(){ var textarea=document.getElementById("demand").value; if(textarea!=""){ return true; } else{ return false; } } function selectCheck(){ var selectValue=document.getElementById("age").value; if(selectValue!="選択されていません"){ return true; } else{ return false; } } </script> </head> <body> <form action="http://www" method="post" name="form"onSubmit="return check()"> <h1>アンケート</h1> <p><label>客番号:<input type="text" name="id"></label></p> <p><label>パスワード:<input type="password" name="pass"></label></p> <h2>(1)</h2> <p>食べたいですか?<br> <br> <input type="radio" name="eng" value="yes"> はい <input type="radio" name="eng" value="neither"> どちらでもない <input type="radio" name="eng" value="no"> いいえ </p> <h2>(2)</h2> <p>食べたい物<br> <br> <input type="checkbox" name="lang[]" value="apple"> りんご <input type="checkbox" name="lang[]" value="banana"> バナナ <input type="checkbox" name="lang[]" value="pasta"> パスタ <input type="checkbox" name="lang[]" value="pizza"> ピザ <input type="checkbox" name="lang[]" value="supu"> スープ </p> <h2>(3)</h2> <p>意見(自由記述)<br> <textarea id="demand" name="opinion" cols="40" rows="4" maxlength="20"> </textarea> </p> <h2>(4)</h2> <p> 年齢を選択 <select id="age" name="age"> <option selected value="選択されていません">以下から選択</option> <option value="10~19才">10~19才</option> <option value="20~29才">20~29才</option> <option value="30~39才">30~39才</option> <option value="40~49才">40~49才</option> <option value="50~59才">50~59才</option> <option value="60~69才">60~69才</option> <option value="70才~">70才~</option> </select> </p> <p> <input type="submit" name="button" value="送信" onclick="check();"> <input type="reset" value="クリア"> </p> </body> </form> </html>

  • Javascriptで数値の和を求める際の処理

    宜しくお願いします。 下記のプログラムの場合、 a,b,c の何れかの値が一つでも未入力の場合、 計算結果が表示されません。 未入力の場合は「0」とみなして、結果を表示させるには、 どの様にしたらよろしいでしょうか。 ご教授ください。 <script> var sum = 0; sum += a; sum += b; sum += c; var result = sum; var x = result; var y = myFormatNumber(x);function myFormatNumber(x) { var s = "" + x; var p = s.indexOf(".");if (p < 0) { p = s.length; } var r = s.substring(p, s.length); for (var i = 0; i < p; i++) { var c = s.substring(p - 1 - i, p - 1 - i + 1); if (c < "0" || c > "9") { r = s.substring(0, p - i) + r; break;}if (i > 0 && i % 3 == 0) { r = "," + r; } r = c + r; } return r; } document.write(y); </script>

  • jqueryでscrollTopの値をとりたい

    貴重な場をお借りして、ぜひとも教えていただきたいことがございます。 今、スクロールをすると要素がフェイドインするようなjqueryを書いています。 下記をご覧ください。 $(window).on("scroll", function(){}の中に入っているscrollTop,scrollVolを このfunctionの外でも使用したいのですが、方法はございますでしょうか。 つまり、if文のscrollVolに値を入れたいのですがunderfindとなってしまいます。 $(window).on("scroll", function(){}の中でif文を実行すれば取得はもちろんできるのですが、この外側で使用したい場合どうすればよろしいでしょうか。 お手数ですが、お力を貸していただけませんでしょうか。 よろしくお願いいたします。 function paralax(){ var target = $('#sec1'); var targetOffset = target.offset().top; target.css('display','none'); var scrollTop , windowHeight , scrollVol; windowHeight = $(window).height(); $(window).on("scroll", function(){ scrollTop = $(window).scrollTop(); scrollVol = scrollTop + windowHeight; }); if(targetOffset <= scrollVol){ target.fadeTo(400 , 1); } }