iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
0

let

宣告一個在當前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
})(); 

const

宣告一個常數(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

Default Parameter Values

如果傳入的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

EPSILON、MIN_SAFE_INTEGER、MAX_SAFE_INTEGER

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

上一篇
[28] IDKJS - ES5
下一篇
[30] 小結
系列文
我在繡房繡小主常服的日子-- 初入前端工程師的第一個小挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言