宣告一個在當前scope作用的變數,
與var
不同是let
不會建立全域變數。
var varTest = (function() {
var x = 1;
if (true) {
var x = 2;
console.log(x); // 2
}
console.log(x); // 2
})();
var letTest = (function() {
let x = 1;
if (true) {
let x = 2;
console.log(x); // 2
}
console.log(x); // 1
})();
宣告一個常數(constant),不能被重複宣告,也不能重複指定值,
但和let
一樣可以宣告一個在當前scope作用的常數。
const pi = 3.1415;
pi = 3; //Uncaught TypeError: Assignment to constant variable.
const pi = 3.1415926;
var pi = 3.1;
let pi = 3.14; // 以上都會告訴我們重複宣告了pi
if (true) {
const pi = 3;
console.log(pi); // 3
}
if (true) {
let pi = 3.14;
console.log(pi); // 3.14
}
if (true) {
var pi = 3.1415926;
console.log(pi); // 會產生錯誤說重複宣告
}
console.log(pi); // 3.1415926
如果傳入的argument為undefined或是沒有傳入argument,
可以預先為parameter設定一個default值。
function plus (x, y) {
return x + y;
}
console.log(plus(2)); // NaN
function plus1 (x, y = 5) {
return x + y;
}
console.log(plus1(2)); // 7
console.log(plus1(2, 3)); // 5
Array.find()
、Array.findIndex()
Array.find()
可以找出array中第一個符合條件的element,並return element的value,Array.findIndex()
則是可以return element的index。
var number = [1, 3, 5, 7, 9, 11, 13, 15];
var moreThen10 = number.find(function(x) {
return x > 10;
});
var moreThen10Index = number.findIndex(function(x) {
return x > 10;
});
console.log(moreThen10); // 11
console.log(moreThen10Index); // 5
Number.EPSILON
:1與大於1可表示的最小浮點數的差值,約等於2.2204460492503130808472633361816E-16
Number.MIN_SAFE_INTEGER
:可在 JavaScript 中安全表示的最小數字。等於 −9007199254740991
。
Number.MAX_SAFE_INTEGER
:可在 JavaScript 中安全表示的最大數字。等於 9007199254740991
。
Number.isSafeInteger()
可以判斷argument是否為安全整數
,
安全整數的範圍: -(2^(53) - 1) 至(2^(53) - 1)。
var x = Math.pow(2, 53);
var y = Math.pow(2, 53) - 1;
console.log(Number.isSafeInteger(x)); // false
console.log(Number.isSafeInteger(y)); // true