質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

3111閲覧

Math.ceiling()とceil()の違い

aaaaaaaa

総合スコア501

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/02/08 10:40

javascriptにおける小数点の切り上げを行うceiling()とceil()の違いを教えてください。
今現在学んでいる書籍には、ceiling()は載っておらず、ceil()のみです。
パーフェクトjavascript126pにて別の書籍の引用として

javascript

1Math[this < 0? "ceiling" : "floor"](this)

という与えられた数字の符号によって呼び出すメソッドを変えるブラケット演算子です。
この引用で初めて、ceil以外にceilingがあるのだと知りました。これらの違いは何なのでしょうか。flooring()も存在するのでしょうか。

また、書籍を見るまでは、数字の符号によって云々という処理をifなどの条件分岐で行っていたと思うのですが、ブラケット演算子を利用することで、こんな少ない行で切り上げ、切り下げができることを知りました。どうすれば賢くソース設計ができるようになるのでしょうか。このような、私にとってタメになる設計図を暗記していく以外にないのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Math.ceiling は存在しません。
Google Chrome 等のブラウザで実行するだけで明らかになるので、質問する前に自分の環境で検証して下さい。

書籍『パーフェクトJavaScript』

文章を局所的に見るのでなく、前後をよく読みましょう。
『パーフェクトJavaScript』(P126)には次の一文があります。

技巧的ですが書籍「JavaScript: The Good Parts」(注4)の例を引用します。

つまり、『JavaScript: The Good Parts』の中のコードを転記したのでしょう。
該当ページ数が書いてない辺りは引用としては不完全ですが。

書籍『JavaScript: The Good Parts』

[2009年1月 (2刷にて修正)] の節で

  • P.38
    Math.ceiling(2箇所あり)

    Math.ceil

とありますので、typoでしょう。

まとめ

『JavaScript: The Good Parts』は古い書籍なので『パーフェクトJavaScript』の執筆時点では改定済のはずですが、著者は『JavaScript: The Good Parts』の初版を持っていてそちらを参考にしたのでしょうね。
ただし、JavaScript を学習した人なら気が付いて当然の typo であり、『パーフェクトJavaScript』の内容は信頼性が低いといわざるをえません。
書籍にする前に実行してみれば一目瞭然でしょう。

Re: aaaaaaaa さん

投稿2017/02/08 11:09

編集2017/02/08 11:18
think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JavaScriptのMathにceiling()という関数はありません。その文はまちがいです。

暗記というか、とらえ方は人それぞれだと思いますが、JavaScriptの言語仕様を覚えていけばいいと思います。そうすれば、もっとシンプルなコードが書けるようになります。
ですが可読性とのトレードオフとなってしまいがちですので、可読性は維持しつつでシンプルなコードを書くようにしましょう。

投稿2017/02/08 11:02

turbgraphics200

総合スコア4267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Math.ceiling()という関数はありません。

JavaScript

1console.log( Math ); 2/* 3Math 4E:2.718281828459045 5LN2:0.6931471805599453 6LN10:2.302585092994046 7LOG2E:1.4426950408889634 8LOG10E:0.4342944819032518 9PI:3.141592653589793 10SQRT1_2:0.7071067811865476 11SQRT2:1.4142135623730951 12abs:abs() 13acos:acos() 14acosh:acosh() 15asin:asin() 16asinh:asinh() 17atan:atan() 18atan2:atan2() 19atanh:atanh() 20cbrt:cbrt() 21ceil:ceil() 22clz32:clz32() 23cos:cos() 24cosh:cosh() 25exp:exp() 26expm1:expm1() 27floor:floor() 28fround:fround() 29hypot:hypot() 30imul:imul() 31log:log() 32log1p:log1p() 33log2:log2() 34log10:log10() 35max:max() 36min:min() 37pow:pow() 38random:random() 39round:round() 40sign:sign() 41sin:sin() 42sinh:sinh() 43sqrt:sqrt() 44tan:tan() 45tanh:tanh() 46trunc:trunc() 47Symbol(Symbol.toStringTag):"Math" 48__proto__:Object 49*/

【JavaScript Math Reference】
http://www.w3schools.com/jsref/jsref_obj_math.asp

投稿2017/02/08 11:07

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問