Number & String & 變數(const / var / let)

String 不等於 Number,所以要算數的時候需要用到 parseInt。

Number 又分 integers(整數)、floating Point Numbers(有小數點)、Scientific Notation(科學記號

Math function 有很多可用的 method,整理一些常用的:

Math.floor() 函式會回傳無條件捨去後的最大整數

console.log(Math.floor(5.95));
// expected output: 5
console.log(Math.floor(5));
// expected output: 5
console.log(Math.floor(-5.05));
// expected output: -6

Math.max() function returns the largest of zero or more numbers.

console.log(Math.max(1, 3, 2));
// expected output: 3
console.log(Math.max(-1, -3, -2));
// expected output: -1
var array1 = [1, 3, 2];
console.log(Math.max(...array1));
// expected output: 3

Math.min() returns the lowest-valued number passed into it, or NaN if any parameter isn’t a number and can’t be converted into one.

console.log(Math.min(2, 3, 1));
// expected output: 1
console.log(Math.min(-2, -3, -1));
// expected output: -3
var array1 = [2, 3, 1];
console.log(Math.min(...array1));
// expected output: 1

The Math.random() function returns a floating-point, pseudo-random number in the range 0–1 (inclusive of 0, but not 1) with approximately uniform distribution over that range

function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max));
}
console.log(getRandomInt(3));
// expected output: 0, 1 or 2
console.log(getRandomInt(1));
// expected output: 0
console.log(Math.random());
// expected output: a number between 0 and 1

變數(const / let / var)

  • let 與 const 是區塊作用域(block scope),把它們放在 {}裡頭,就只會在那個區塊可以使用,通常會使用在 if, else, while, for 之類的區塊作用域。
  • var 是函式作用域(function scope):使用 var 宣告變數,可用範圍以function 為界,function 外讀不到值,作用比較弱,有時候會 leak 出去。

  • 如果不會改變的值,也不希望改變的變數,用const
  • 如果要做常數物件(不可更改屬性的),用Object.freeze(object)
  • 如果確定會改值的,用let
  • 考慮相容性的問題(IE),就用var ,但一定要小心作用域與拉昇的問題

const 在宣告變數時就會進行初始化,一定要給初始值,因此必定要在一開始就給予值作宣告,常數不可重複賦值(不能一開定義 const q= 10,後面又定義 q=20),但可以修改物件屬性

const iamObject={
a:123,
b:”hi”
}

iamObject.a=456;
iamObject.b=888;
console.log(iamObject) // 會出現{a: 456, b :888}

let 可以不用給初始值,若無初始值,預設會給 undefine,不可重複宣告。一般使用在變數(variable)可能會被重新指定值。例如:在迴圈(for loop)中,一開始的變數宣告使用。也可以說較常使用在函式(function)自行定義的區塊(block)中,例如:迴圈(for loop)或者邏輯、數學等演算法括弧({} or ())中作宣告使用,而不會存在並使用於整個函式(function)中。