## JS對象
### **Date**
先列一下常用的方法
```
# 實例化
new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
# 獲取指定日期的年份
getFullYear()
# 獲取指定日期的月份,從`0`的值(0表示一年中的第一月)
getMonth()
# 獲取指定日期的第幾日
getDate()
# 獲取指定日期的小時
getHours()
# 獲取指定日期的分鐘
getMinutes()
# 獲取指定日期的秒數
getSeconds()
# 獲取指定日期屬于一周的第幾天,周日 = `0`(0 - 6)
getDay()
# 獲取指定日期的毫秒數
getMilliseconds()
# 返回一個時間的格林威治時間數值(本地會自動幫助計算時區)
getTime()
# 方法返回一個`Date`對象的原始值,等同于`getTime()`
valueOf()
```
我們工作中常見的`Date`對象相關的操作,很多是需要把時間轉換為字符串進行展示;
- 日期轉字符串
- 時間戳轉字符串
### **String**
```
# 返回指定位置的字符,從`0`開始,默認為`0`
str.charAt()
# 多個字符串與原字符串連接合并,形成一個新的字符串并返回。
str.concat(string2,?string3[, ...,?stringN])
# 判斷字符串是否是以一個給定的子字符串“結尾”,返回`true`或`false`
# `length` 可選,作為`str`的長度。默認值為`str.length`
str.endsWith(searchString[, length])
# 判斷一個字符串是否包含另一個字符串,返回`true`或`false`(區分大小寫)
# `position`可選,從字符串的固定位置開始查找字符串,默認值為`0`
str.includes(searchString[,?position])
# 查找字符串第一次出現的索引,未找到則返回`-1`
# `fromIndex`可選, 表示開始查找的位置,默認值為`0`
str.indexOf(searchValue [, fromIndex])
# 用一個字符串填充當前字符串(重復,如果需要的話),以便產生的字符串達到給定的長度,從當前字符串的末尾(右側)開始填充
str.padEnd(targetLength [, padString])
# 用另一個字符串填充當前字符串(重復,如果需要的話),以便產生的字符串達到給定的長度,填充從當前字符串的開始(左側)應用的
str.padStart(targetLength [, padString])
# 方法返回一個由替換值(`replacement`)替換一些或所有匹配的模式(`pattern`)后的新字符串。模式可以是一個`字符串`或者一個`正則表達式`,替換值可以是一個字符串或者一個每次匹配都要調用的回調函數。
str.replace(regexp|substr, newSubStr|function)
# 提取某個字符串的一部分,并返回一個新的字符串,且不會改動原字符串。
str.slice(beginIndex[, endIndex])
#方法使用指定的分隔符字符串將一個`String`對象分割成子字符串數組,以一個指定的分割字串來決定每個拆分的位置。
str.split([separator[, limit]])
# 方法用來判斷當前字符串是否以另外一個給定的子字符串開頭,并根據判斷結果返回`true`或`false`。
str.startsWith(searchString[, position])
# 返回一個字符串在開始索引到結束索引之間的一個子集, 或從開始索引直到字符串的末尾的一個子集。
str.substring(indexStart[, indexEnd])
# 一個字符串的兩端刪除空白字符。在這個上下文中的空白字符是所有的空白字符?(space, tab, no-break space 等) 以及所有行終止符字符(如 LF,CR等)。
str.trim()
# 字符串值轉為小寫形式,并返回
str.toLowerCase()
# 字符串值轉為大寫形式,并返回
str.toUpperCase()
* 當?`引用字符串` 在?`比較字符串` 前面時返回 -1
* 當 `引用字符串`?在?`比較字符串` 后面時返回 1
* 相同位置時返回 0
referenceStr.localeCompare(compareString[, locales[, options]])
```
### **Math**
```
# 返回指定數字 “x“ 的絕對值
Math.abs(x);
# 返回大于或等于一個給定數字的最小整數。
Math.ceil(x)
# 向下取整,返回小于或等于一個給定數字的最大整數。
Math.floor(x)
# 返回一個浮點, ?偽隨機數在范圍從`0`到小于`1` [0, 1)
Math.random()
# 返回一個數字四舍五入后的整數
Math.round(x)
# 函數返回一組數中的最大值
Math.max(value1[,value2, ...])
# 函數返回一組數中的最小值
Math.min(value1[,value2, ...])
# 將數字的小數部分去掉,只保留整數部分
Math.trunc(value)
```
### **Array**
[MDN - Array](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/length)
### **Number**
```
# 判斷給定的參數是否為整數
Number.isInteger(value)
# 判斷給定的參數是否為NaN
Number.isNaN(value)
# 把一個字符串解析成浮點數
Number.parseFloat(string)
# 把字符串 解析成整數
Number.parseInt(string[, radix])
# 使用定點表示法來格式化一個數值,四舍五入
numObj.toFixed(digits)
```
### **Object**
```
# 方法用于將所有可枚舉屬性的值從一個或多個源對象復制到目標對象
Object.assign(target, ...sources)
# 創建一個新對象,使用現有的對象來提供新創建的對象的__proto__。
Object.create(proto[, propertiesObject])
# 方法直接在一個對象上定義新的屬性或修改現有屬性,并返回該對象。
Object.defineProperties(obj,?props)
# 直接在一個對象上定義一個新屬性,或者修改一個對象的現有屬性,并返回此對象。
Object.defineProperty(obj, prop, descriptor)
`configurable`
當且僅當該屬性的`configurable`鍵值為`true`時,該屬性的描述符才能夠被改變,同時該屬性也能從對應的對象上被刪除。
默認為`false`。
`enumerable`
當且僅當該屬性的`enumerable`鍵值為`true`時,該屬性才會出現在對象的枚舉屬性中。
默認為`false`。
數據描述符還具有以下可選鍵值:
`value`
該屬性對應的值。可以是任何有效的 JavaScript 值(數值,對象,函數等)。
默認為[`undefined`]。
`writable`
當且僅當該屬性的`writable`鍵值為`true`時,屬性的值,也就是上面的`value`,才能被[`賦值運算符`]改變。
默認為`false`。
存取描述符還具有以下可選鍵值:
`get`
屬性的 getter 函數,如果沒有 getter,則為`undefined`。當訪問該屬性時,會調用此函數。執行時不傳入任何參數,但是會傳入`this`對象(由于繼承關系,這里的`this`并不一定是定義該屬性的對象)。該函數的返回值會被用作屬性的值。
默認為[`undefined`]。
`set`
屬性的 setter 函數,如果沒有 setter,則為`undefined`。當屬性值被修改時,會調用此函數。該方法接受一個參數(也就是被賦予的新值),會傳入賦值時的`this`對象。
默認為[`undefined`]。
# 返回一個給定對象自身可枚舉屬性的鍵值對組成的數組
Object.entries(obj)
# 把鍵值對列表轉換為一個對象
Object.fromEntries(iterable)
# 返回一個給定對象自身的所有可枚舉屬性組成的數組
Object.keys(obj)
# 返回一個給定對象自身的所有可枚舉屬性值組成的數組
Object.values(obj)
# 對象自身屬性中是否具有指定的屬性, 返回布爾值
obj.hasOwnProperty(prop)
# 用于測試一個對象是否存在于另一個對象的原型鏈上
prototypeObj.isPrototypeOf(object)
```
- 版本控制之Git簡介
- Git工作流程
- Git工作區、暫存區、版本庫
- Git 指令匯總
- Git 忽略文件規則 .gitignore
- pull request
- HTTP簡介
- HTTP - Keep-Alive
- HTTP緩存
- XMLHttpRequest
- Fetch
- 跨域
- HTTP 消息頭
- TCP/IP
- TCP首部
- IP首部
- IP 協議
- TCP/IP漫畫
- 前端開發規范
- 前端開發規范整理
- 前端未來規劃
- HTML思維導圖
- CSS思維導圖
- 布局
- position,float,display的關系和優先級
- line-height、height、font-size
- 移動端適配
- JS 對象
- JS 原型模式 - 創建對象
- JS 預編譯
- 探索JS引擎
- ES