Penerjemahan ini sedang berlangsung.

Pada Bab ini memperkenalkan cara menggunakan angka dan tanggal pada JavaScript.

Angka

Pada JavaScript, semua angka diimplementasikan kedalam double-precision 64-bit binary format IEEE 754 (mis. angka antara -(253 -1) dan 253 -1). Tidak ada jenis spesifik untuk integer. Selain bisa mewakili angka float, tipe data angka memiliki 3 nilai secara simbolik: +Infinity, -Infinity, dan NaN (bukan sebuah angka). Lihat juga JavaScript tipe data dan struktur untuk konteks dengan tipe data primitif JavaScript yang lain.

Anda dapat menggunakan empat tipe angka literal: desimal, biner, oktal, dan heksadesimal.

Angka Desimal

1234567890
42

// Perhatikan ketika menggunakan angka berawalan nol:

0888 // 888 diubah menjadi desimal
0777 // diubah menjadi oktal pada non-strict mode (511 in decimal)

Perhatikan bahwa desimal literal dapat dimulai dari nol(0) diikuti angka desimal yang lain, namun jika setiap angka setelah 0 lebih kecil dari 8, angkanya diubah menjadi oktal.

Angka Biner

Sintaks angka biner menggunakan angka nol diikuti dengan huruf kecil atau dengan huruf besar, huruf Latin "B" (0b atau 0B). Jika digit setelah 0b atau bukan 0 atau 1, menurut SyntaxError yang dilemparkan: "Missing binary digits after 0b".

var FLT_SIGNBIT  = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607

Angka oktal

Angka oktal menggunakan awalan angka nol. Jika digit setelah 0 berada diluar jangkauan 0 hinga 7, angka akan diintrepretasikan sebagai angka desimal.

var n = 0755; // 493
var m = 0644; // 420

Mode ketat pada ECMAScript 5 melarang sintaks oktal. Oktal sintaks bukan bagian dari ECMAScript 5, namun didukung oleh semua peramban dengan cara awalan nomor oktal dengan angka nol: 0644 === 420 dan "\045" === "%". Pada ECMAScript 2015, angka oktal didukung jika diawali dengan 0o, e.g.: 

var a = 0o10; // ES2015: 8

Angka Heksadesimal

Sintaks heksadesimal menggunakan awalan nol diikuti dengan huruf kecil atau huruf kapital Latin "X" (0x atau 0X). Jika digit setelah 0x berada diluar jangkauan (0123456789ABCDEF),  menurut SyntaxError yang dilemparkan: "Identifier starts immediately after numeric literal".

0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF   // 81985529216486900
0XA                 // 10

Eksponensial

1E3   // 1000
2e6   // 2000000
0.1e2 // 10

Angka object

The built-in Number objek memiliki properti untuk numerik konstanta, seperti nilai maksimal, bukan-sebuah-angka, dan tak terhingga. Anda tidak dapat mengganti nilai dari properti tersebut dan anda dapat menggunakannya sebagai berikut:

var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;

Anda selalu mengacu pada properti dari objek angka yang telah ditentukan seperti yang ditunjukkan diatas, dan bukan sebagai properti objek angka yang anda tentukan.

Tabel berikut meringkas sifat-sifat nomor object.

Properties of Number
Properti Deskripsi
Number.MAX_VALUE Merepresantikan angka maksimal / terbesar
Number.MIN_VALUE Merepresantikan angka minimal / terkecil
Number.NaN Nilai spesial "bukan sebuah angka"
Number.NEGATIVE_INFINITY Nilai spesial negatif tak terhingga; dikembalikan pada overflow
Number.POSITIVE_INFINITY Nilai spesial positif tak terhingga; dikembalikan pada overflow
Number.EPSILON Perbedaan antara satu dan nilai terkecil lebih besar dari satu yang dapat direpresentasikan sebagai Number.
Number.MIN_SAFE_INTEGER Bilangan bulat aman minimum dalam JavaScript.
Number.MAX_SAFE_INTEGER Bilangan bulat aman maksimum dalam JavaScript.
Methods of Number
Method Description
Number.parseFloat() Parses a string argument and returns a floating point number.
Same as the global parseFloat() function.
Number.parseInt() Parses a string argument and returns an integer of the specified radix or base.
Same as the global parseInt() function.
Number.isFinite() Determines whether the passed value is a finite number.
Number.isInteger() Determines whether the passed value is an integer.
Number.isNaN() Determines whether the passed value is NaN. More robust version of the original global isNaN().
Number.isSafeInteger() Determines whether the provided value is a number that is a safe integer.

Prototipe Angka menyediakan metode-metode untuk menampilkan informasi dari objek angka dalam format bervariasi. Tabel berikut meringkas metode-metode prototipe angka.

Methods of Number.prototype
Method Description
toExponential() Mengembalikan string yang merepresentasikan nomor dalam notasi eksponensial.
toFixed() Mengembalikan string yang merepresentasikan nomor dalam notasi fixed-point.
toPrecision() Mengembalikan string yang merepresentasikan nomor dalam notasi fixed-point yang lebih spesifik.

Math object

The built-in Math objek memiliki properti dan metode-metode untuk konstanta matematika dan fungsi-fungsi. Sebagai contoh, objek matematik PI properti memiliki nilai (3.141...), yang akan anda gunakan dalam aplikasi sebagai

Math.PI

Demikian pula, fungsi standard matematika merupakan metode-metode Math. termasuk trigonometri, logaritma, eksponensial, dan fungsi lainnya. Sebagai contoh, jika anda ingin menggunakan fungsi trigonometri sin, anda akan menulis

Math.sin(1.56)

Perhatikan bahwa semua metode trigonometri matematika menggunakan argumen dalam radian.

Tabel berikut meringkas metode-metode objek matematik.

Methods of Math
Method Description
abs() Nilai absolut
sin(), cos(), tan() Fungsi trigonometri standar; dengan argumen dalam radian.
asin(), acos(), atan(), atan2() Fungsi trigonometri terbalik; mengembalikan nilai dalam radian.
sinh(), cosh(), tanh() Fungsi hiperbolik. argumen dalam sudut hiperbolik.
asinh(), acosh(), atanh() Fungsi hiperbolik terbalik. mengembalikan nilai dalam sudut hiperbolik.

pow(), exp()expm1(), log10(), log1p(), log2()

Fungsi eksponen dan logaritma.
floor(), ceil() Mengembalikan angka bulat terkecil/terbesar kurang/lebih dari atau sama dengan pada sebuah argumen.
min(), max() Mengembalikan nilai minimum/maksimum sebuah koma terpisah dari angka sebagai argumen.
random() Megembalikan angka acak antara 0 dan 1.
round(), fround(), trunc(), Fungsi pembulatan dan pemotongan.
sqrt(), cbrt(), hypot() Akar kuadrat, akar pangkat tiga, akar kuadrat dari jumlah argumen persegi.
sign() tanda sebuah angka, mengindikasikan angka apapun merupakan angka positif, negatif, atau nol.
clz32(),
imul()
Angka yang dimulai dari nol bit dalam 32-bit.
Hasil dari C-like 32-bit perkalian dari dua argumen.

Tidak seperti beberapa objek lainnya, anda tidak perlu membuat objek matematika sendiri. anda selalu menggunakan built-in Math object.

Date object

JavaScript does not have a date data type. However, you can use the Date object and its methods to work with dates and times in your applications. The Date object has a large number of methods for setting, getting, and manipulating dates. It does not have any properties.

JavaScript handles dates similarly to Java. The two languages have many of the same date methods, and both languages store dates as the number of milliseconds since January 1, 1970, 00:00:00, with a Unix Timestamp being the number of seconds since January 1, 1970, 00:00:00.

The Date object range is -100,000,000 days to 100,000,000 days relative to 01 January, 1970 UTC.

To create a Date object:

var dateObjectName = new Date([parameters]);

where dateObjectName is the name of the Date object being created; it can be a new object or a property of an existing object.

Calling Date without the new keyword returns a string representing the current date and time.

The parameters in the preceding syntax can be any of the following:

  • Nothing: creates today's date and time. For example, today = new Date();.
  • A string representing a date in the following form: "Month day, year hours:minutes:seconds." For example, var Xmas95 = new Date("December 25, 1995 13:30:00"). If you omit hours, minutes, or seconds, the value will be set to zero.
  • A set of integer values for year, month, and day. For example, var Xmas95 = new Date(1995, 11, 25).
  • A set of integer values for year, month, day, hour, minute, and seconds. For example, var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);.

Methods of the Date object

The Date object methods for handling dates and times fall into these broad categories:

  • "set" methods, for setting date and time values in Date objects.
  • "get" methods, for getting date and time values from Date objects.
  • "to" methods, for returning string values from Date objects.
  • parse and UTC methods, for parsing Date strings.

With the "get" and "set" methods you can get and set seconds, minutes, hours, day of the month, day of the week, months, and years separately. There is a getDay method that returns the day of the week, but no corresponding setDay method, because the day of the week is set automatically. These methods use integers to represent these values as follows:

  • Seconds and minutes: 0 to 59
  • Hours: 0 to 23
  • Day: 0 (Sunday) to 6 (Saturday)
  • Date: 1 to 31 (day of the month)
  • Months: 0 (January) to 11 (December)
  • Year: years since 1900

For example, suppose you define the following date:

var Xmas95 = new Date('December 25, 1995');

Then Xmas95.getMonth() returns 11, and Xmas95.getFullYear() returns 1995.

The getTime and setTime methods are useful for comparing dates. The getTime method returns the number of milliseconds since January 1, 1970, 00:00:00 for a Date object.

For example, the following code displays the number of days left in the current year:

var today = new Date();
var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // Set day and month
endYear.setFullYear(today.getFullYear()); // Set year to this year
var msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day
var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
var daysLeft = Math.round(daysLeft); //returns days left in the year

This example creates a Date object named today that contains today's date. It then creates a Date object named endYear and sets the year to the current year. Then, using the number of milliseconds per day, it computes the number of days between today and endYear, using getTime and rounding to a whole number of days.

The parse method is useful for assigning values from date strings to existing Date objects. For example, the following code uses parse and setTime to assign a date value to the IPOdate object:

var IPOdate = new Date();
IPOdate.setTime(Date.parse('Aug 9, 1995'));

Example

In the following example, the function JSClock() returns the time in the format of a digital clock.

function JSClock() {
  var time = new Date();
  var hour = time.getHours();
  var minute = time.getMinutes();
  var second = time.getSeconds();
  var temp = '' + ((hour > 12) ? hour - 12 : hour);
  if (hour == 0)
    temp = '12';
  temp += ((minute < 10) ? ':0' : ':') + minute;
  temp += ((second < 10) ? ':0' : ':') + second;
  temp += (hour >= 12) ? ' P.M.' : ' A.M.';
  return temp;
}

The JSClock function first creates a new Date object called time; since no arguments are given, time is created with the current date and time. Then calls to the getHours, getMinutes, and getSeconds methods assign the value of the current hour, minute, and second to hour, minute, and second.

The next four statements build a string value based on the time. The first statement creates a variable temp, assigning it a value using a conditional expression; if hour is greater than 12, (hour - 12), otherwise simply hour, unless hour is 0, in which case it becomes 12.

The next statement appends a minute value to temp. If the value of minute is less than 10, the conditional expression adds a string with a preceding zero; otherwise it adds a string with a demarcating colon. Then a statement appends a seconds value to temp in the same way.

Finally, a conditional expression appends "P.M." to temp if hour is 12 or greater; otherwise, it appends "A.M." to temp.

Tag Dokumen dan Kontributor

Kontributor untuk laman ini: triashand
Terakhir diperbarui oleh: triashand,