By GokiSoft.Com| 23:01 19/05/2020|
Tài Liệu Javascript

JavaScript Number Methods - Các phương thức của chữ số trong JavaScript

Các phương thức của số giúp bạn làm việc với các chữ số.



Các phương thức và các thuộc tính của chữ số 


Các giá trị nguyên thủy (như 3.14 hoặc 2014), không thể có các thuộc tính và các phương thức (bởi vì chúng không phải các đối tượng).

Nhưng với JavaScript, các phương thức và các thuộc tính cũng có sẵn cho các giá trị nguyên thủy, bởi JavaScript coi các giá trị nguyên thủy như các đối tượng khi thực thi các phương thức và các thuộc tính.



Phương thức toString()


Phương thức  toString() trả về một số là chuỗi.

Toàn bộ các phương thức số có thể được dùng trên tất cả các kiểu của số(số cố định, các biến, hoặc biểu thức):

ví dụ

var x = 123;
x.toString();            // returns 123 from variable x
(123).toString();        // returns 123 from literal 123
(100 + 23).toString();   // returns 123 from expression 100 + 23
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The toString() method converts a number to a string.</p>

<p id="demo"></p>

<script>
var x = 123;
document.getElementById("demo").innerHTML =
  x.toString() + "<br>" +
   (123).toString() + "<br>" +
   (100 + 23).toString();
</script>

</body>
</html>



Phương thức toExponential()


Phương thức toExponential() trả về một chuỗi, với một chữ số làm tròn và viết cùng dấu mũ.

Một tham số định rõ số lượng của các kí tự đằng dấu thập phân:

ví dụ

var x = 9.656;
x.toExponential(2);     // returns 9.66e+0
x.toExponential(4);     // returns 9.6560e+0
x.toExponential(6);     // returns 9.656000e+0
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The toExponential() method returns a string, with the number rounded and written using exponential notation.</p>

<p>An optional parameter defines the number of digits behind the decimal point.</p>

<p id="demo"></p>

<script>
var x = 9.656;
document.getElementById("demo").innerHTML =
  x.toExponential() + "<br>" + 
  x.toExponential(2) + "<br>" + 
  x.toExponential(4) + "<br>" + 
  x.toExponential(6);
</script>

</body>
</html>


Các tham số được tùy chọn. Nếu bạn không chỉ định nó, JavaScript sẽ không làm tròn số đó.



Phương thức toFixed() 


Phương thức toFixed() trả về một chuỗi với số được viết với phần thập phân xác định:

ví dụ

var x = 9.656;
x.toFixed(0);           // returns 10
x.toFixed(2);           // returns 9.66
x.toFixed(4);           // returns 9.6560
x.toFixed(6);           // returns 9.656000
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The toFixed() method rounds a number to a given number of digits.</p>
<p>For working with money, toFixed(2) is perfect.</p>

<p id="demo"></p>

<script>
var x = 9.656;
document.getElementById("demo").innerHTML =
  x.toFixed(0) + "<br>" +
  x.toFixed(2) + "<br>" +
  x.toFixed(4) + "<br>" +
  x.toFixed(6);
</script>

</body>
</html>


TiptoFixed(2) hoàn toàn phù hợp khi làm việc với tiền nong(money).



Phương thức toPrecision()


toPrecision() trả về một chuỗi, với một số được viết với một độ dài cụ thể:

ví dụ

var x = 9.656;
x.toPrecision();        // returns 9.656
x.toPrecision(2);       // returns 9.7
x.toPrecision(4);       // returns 9.656
x.toPrecision(6);       // returns 9.65600
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The toPrecision() method returns a string, with a number written with a specified length:</p>

<p id="demo"></p>

<script>
var x = 9.656;
document.getElementById("demo").innerHTML = 
  x.toPrecision() + "<br>" +
  x.toPrecision(2) + "<br>" +
  x.toPrecision(4) + "<br>" +
  x.toPrecision(6);  
</script>

</body>
</html>



Phương thức valueOf()


valueOf() trả về một số như một số.

ví dụ

var x = 123;
x.valueOf();            // returns 123 from variable x
(123).valueOf();        // returns 123 from literal 123
(100 + 23).valueOf();   // returns 123 from expression 100 + 23
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The valueOf() method returns a number as a number:</p>

<p id="demo"></p>

<script>
var x = 123;

document.getElementById("demo").innerHTML = 
  x.valueOf() + "<br>" +
  (123).valueOf() + "<br>" +
  (100 + 23).valueOf();
</script>

</body>
</html>


Trong JavaScript, một số có thể là một giá trị nguyên thủy (typeof = số) hoặc một đối tượng (typeof = đối tượng).

Phương thức  valueOf() được dùng nội bộ bên trong JavaScript để chuyển đổi các đối tượng số thành các giá trị nguyên thủy.

Không có lý do gì để dùng nó ở trong code của bạn.




Tip: Tất cả kiểu dữ liệu JavaScript có một phương thức  valueOf() và toString().



Chuyển các biến thành các số


Có 3 phương thức JavaScript có thể dùng để chuyển đổi các biến thành các chữ số:

  • Number()
  • parseInt()
  • parseFloat()

Các phương thức này không phải phương thức số ,mà là các phương thức toàn cục của JavaScript



Các phương thức toàn cục JavaScript


Các phương thức toàn cục của JavaScript có thể dùng trên toàn bộ các kiểu dữ liệu JavaScript.

Đây là các phương thức liên quan nhất, khi làm việc với các số:

Phương thứcMô tả
Number()Trả về một số, chuyển đổi từ đối số của nó
parseFloat()Ép kiểu đối số của nó và trả về một số thực dấu phẩy động
parseInt()Ép kiểu đối số của nó và trả về một số nguyên



Phương thức Number() 


Number()  có thể được dùng để chuyển các biến JavaScript thành các số:

ví dụ

Number(true);          // returns 1
Number(false);         // returns 0
Number("10");          // returns 10
Number("  10");        // returns 10
Number("10  ");        // returns 10
Number(" 10  ");       // returns 10
Number("10.33");       // returns 10.33
Number("10,33");       // returns NaN
Number("10 33");       // returns NaN
Number("John");        // returns NaN
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The Number() method converts variables to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
  Number(true) + "<br>" +
  Number(false) + "<br>" +
  Number("10") + "<br>" + 
  Number("  10") + "<br>" +
  Number("10  ") + "<br>" +
  Number(" 10  ") + "<br>" +
  Number("10.33") + "<br>" + 
  Number("10,33") + "<br>" +
  Number("10 33") + "<br>" +
  Number("John");
</script>

</body>
</html>


Tip: Nếu số không thể bị chuyển đổi, NaN (không phải một số) được trả về.



Phương thức Number() dùng trên dates


Number() có thể cũng được chuyển đổi một thời gian thành một số:

ví dụ

Number(new Date("2017-09-30"));    // returns 1506729600000
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The Number() method can convert a date to a number:</p>

<p id="demo"></p>

<script>
var x = new Date("2017-09-30");
document.getElementById("demo").innerHTML = Number(x); 
</script>

</body>
</html>


Tip: Phương thức Number() trên trả về số lượng của mili giây từ 1.1.1970



Phương thức parseInt()


 parseInt() ép kiểu một chuỗi và trả nó về toàn bộ số. Khoảng trắng được cho phép.

Chỉ có số đầu tiên được trả về:

ví dụ

parseInt("10");         // returns 10
parseInt("10.33");      // returns 10
parseInt("10 20 30");   // returns 10
parseInt("10 years");   // returns 10
parseInt("years 10");   // returns NaN 
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Functions</h2>

<p>The global JavaScript function parseInt() converts strings to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
  parseInt("10") + "<br>" +
  parseInt("10.33") + "<br>" +
  parseInt("10 6") + "<br>" +  
  parseInt("10 years") + "<br>" +  
  parseInt("years 10");  
</script>

</body>
</html>


Nếu số không thể chuyển đổi, NaN sẽ được trả về.



Phương thức parseFloat() 


parseFloat() ép kiểu một chuỗi và trả về một số. Khoảng trắng được cho phép. Duy chỉ số đầu tiên được trả về:

ví dụ

parseFloat("10");        // returns 10
parseFloat("10.33");     // returns 10.33
parseFloat("10 20 30");  // returns 10
parseFloat("10 years");  // returns 10
parseFloat("years 10");  // returns NaN
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The parseFloat() method converts strings to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
  parseFloat("10") + "<br>" +
  parseFloat("10.33") + "<br>" +
  parseFloat("10 6") + "<br>" +  
  parseFloat("10 years") + "<br>" +
  parseFloat("years 10");    
</script>

</body>
</html>


Nếu số không thể chuyển đổi, NaN sẽ được trả về.



Các thuộc tính của số


Thuộc tínhMô tả
MAX_VALUETrả về giá trị lớn nhất có thể trong JavaScript
MIN_VALUETrả về giá trị nhỏ nhất có thể trong JavaScript
POSITIVE_INFINITYĐại diện cho dương vô cùng (trả về khi bị overflow)
NEGATIVE_INFINITYĐại diện cho âm vô cùng (trả về khi bị overflow)
NaNĐại diện cho một giá trị "Không-phải-một-số" 



JavaScript MIN_VALUE và MAX_VALUE


MAX_VALUE trả về số lớn nhất có thể trong JavaScript.

ví dụ

var x = Number.MAX_VALUE;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>MAX_VALUE returns the largest possible number in JavaScript.</p>

<p id="demo"></p>

<script>
var x = Number.MAX_VALUE;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


MIN_VALUE trả về số nhỏ nhất có thể trong JavaScript.

ví dụ

var x = Number.MIN_VALUE;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>MIN_VALUE returns the smallest number possible in JavaScript.</p>

<p id="demo"></p>

<script>
var x = Number.MIN_VALUE;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>



JavaScript POSITIVE_INFINITY


ví dụ

var x = Number.POSITIVE_INFINITY;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>POSITIVE_INFINITY</p>

<p id="demo"></p>

<script>
var x = Number.POSITIVE_INFINITY;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


POSITIVE_INFINITY được trả về khi bị overflow:

ví dụ

var x = 1 / 0;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>POSITIVE_INFINITY is returned on overflow:</p>

<p id="demo"></p>

<script>
var x = 1 / 0;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>



JavaScript NEGATIVE_INFINITY


ví dụ

var x = Number.NEGATIVE_INFINITY;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>NEGATIVE_INFINITY</p>

<p id="demo"></p>

<script>
var x = Number.NEGATIVE_INFINITY;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


NEGATIVE_INFINITY được trả về khi bị overflow:

ví dụ

var x = -1 / 0;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>NEGATIVE_INFINITY</p>

<p id="demo"></p>

<script>
var x = -1 / 0;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>



JavaScript NaN - Không phải là số(Not a number)


ví dụ

var x = Number.NaN;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = Number.NaN;
</script>

</body>
</html>


NaN là một từ riêng của JavaScript chỉ ra một số không phải là số hợp lệ.

Cố gắng thực hiện phép toán với một chuỗi không phải là số sẽ có kết quả là NaN (không phải là số):

ví dụ

var x = 100 / "Apple";  // x will be NaN (Not a Number)
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Numbers</h2>

<p>A number divided by a non-numeric string becomes NaN (Not a Number):</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 100 / "Apple";
</script>

</body>
</html>



Các thuộc tính của số không thể dùng trên các biến


Các thuộc tính số thuộc về trình gói đối tượng số của JavaScript gọi là Number.
Các thuộc tính đó chỉ có thể được truy xuất bằng Number.MAX_VALUE.

Sử dụng  myNumber.MAX_VALUE, khi myNumber là một biến, biểu thức, hoặc giá trị, sẽ trả về  undefined:

ví dụ

var x = 6;
var y = x.MAX_VALUE;    // y becomes undefined
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Object Properties</h2>

<p>Using a Number property on a variable, expression, or value, will return undefined:</p>

<p id="demo"></p>

<script>
var x = 6;
document.getElementById("demo").innerHTML = x.MAX_VALUE;
</script>

</body>
</html>