世界不止0和1 還有...

目錄
基本型別
1.型別檢測
(1)typeof
(2)instanceof
(3)值型別與物件
2. String
(1)宣告定義
(2)轉義符號
(3)連接運算子
(4)模板字面量
(5)標簽模板
(6)獲取長度
(7)大小寫轉換
(8)移除空白
(9)獲取單字符
(10)截取字串
(11)查找字串
(12)替換字串
(13)重復生成
(14)型別轉換
3.Boolean
(1)宣告定義
(2)隱式轉換
(3)顯式轉換
4.Number
(1)宣告定義
(2)基本函式
(3)NaN
(4)型別轉換
Number
parseInt
parseFloat
(5)舍入操作
(6)浮點精度
5.Math
(1)取極限值
(2)舍入處理
(3)random
6.Date
(1)宣告日期
(2)型別轉換
(3)物件方法
基本型別
1.型別檢測
(1)typeof
typeof 用于回傳以下原始型別
基本型別:number/string/boolean
function
object
undefined
可以使用typeof用于判斷資料的型別
(2)instanceof
instanceof 運算子用于檢測建構式的 prototype 屬性是否出現在某個實體物件的原型鏈上,也可以理解為是否為某個物件的實體,typeof不能區分陣列,但instanceof則可以,

(3)值型別與物件
下面是使用字面量與物件方法創建字串,回傳的是不同型別,
只有物件才有方法使用,但在JS中也可以使用值型別呼叫方法,因為它會在執行時將值型別轉為物件,

2. String
(1)宣告定義
使用物件形式創建字串
字串使用單、雙引號包裹,單、雙引號使用結果沒有區別,

(2)轉義符號
有些字符有雙層含義,需要使用 \ 轉義符號進行含義轉換,下例中引號為字串邊界符,如果輸出引號時需要使用轉義符號,

常用轉義符號串列如下
(3)連接運算子
使用 + 可以連接多個內容組合成字串,經常用于組合輸出內容使用,

使用 += 在字串上追回字符內容

(4)模板字面量
使用 ` ...` 符號包裹的字串中可以寫入引入變數與運算式

使用運算式

(5)標簽模板
標簽模板是提取出普通字串與變數,交由標簽函式處理

(6)獲取長度
使用length屬性可以獲取字串長度

(7)大小寫轉換
將字符轉換成大寫格式
![]()
轉字符為小寫格式
![]()
(8)移除空白
使用trim洗掉字串左右的空白字符

(使用trimLeft洗掉左邊空白,使用trimRight洗掉右邊空白)
(9)獲取單字符
根據從0開始的位置獲取字符

使用數字索引獲取字串

(10)截取字串
使用 slice、substr、substring 函式都可以截取字串,
slice、substring 第二個引數為截取的結束位置
substr 第二個引數指定獲取字符數量
(11)查找字串
從開始獲取字串位置,檢測不到時回傳 -1
![]()
從結尾來搜索字串位置

search() 方法用于檢索字串中指定的子字串,也可以使用正則運算式搜索

includes 字串中是否包含指定的值,第二個引數指查找開始位置

startsWith 是否是指定位置開始,第二個引數為查找的開始位置,

endsWith 是否是指定位置結束,第二個引數為查找的結束位置,

下面是查找關鍵詞的示例

(12)替換字串
replace 方法用于字串的替換操作

(13)重復生成
下例是根據引數重復生成星號

下面是模糊后三位電話號碼
![]()
(14)型別轉換
分隔字母

將字串轉換為陣列
![]()
隱式型別轉換會根據型別自動轉換型別

使用 String 建構式可以顯示轉換字串型別

js中大部分型別都是物件,可以使用類方法 toString轉化為字串

3.Boolean
(1)宣告定義
使用物件形式創建布爾型別

但建議使用字面量創建布爾型別
![]()
(2)隱式轉換
基本上所有型別都可以隱式轉換為 Boolean型別,

當與boolean型別比較時,會將兩邊型別統一為數字1或0,
使用Boolean與數值比較時,會進行隱式型別轉換 true轉為1,false 轉為0,

下面是一個典型的例子,字串在與Boolean比較時,兩邊都為轉換為 數值型別后再進行比較,

陣列的表現與字串原理一樣,會先轉換為數值

參考型別的Boolean值為真,如物件和陣列

(3)顯式轉換
使用 !! 轉換布爾型別
使用 Boolean 函式可以顯式轉換為布爾型別

4.Number
(1)宣告定義
使用物件方式宣告

Number用于表示整數和浮點數,數字是 Number實體化的物件, 可以使用物件提供的豐富方法,
(2)基本函式
判斷是否為整數

指定回傳的小數位數可以四舍五入

(3)NaN
表示無效的數值,下例計算將產生NaN結果,

NaN不能使用 == 比較,使用以下代碼來判斷結果是否正確

也可以使用 Object.is 方法判斷兩個值是否完全相同
(4)型別轉換
Number
使用Number函式基本上可以轉換所有型別 
parseInt
提取字串開始去除空白后的數字轉為整數,
parseFloat
轉換字串為浮點數,忽略字串前面空白字符,

(5)舍入操作
使用 toFixed 可對數值舍入操作,引數指定保存的小數位
(6)浮點精度
大部分編程語言在浮點數計算時都會有精度誤差問題, 下面來看JS中的表現形式.,
這是因為計算機以二進制處理數值型別, 上面的0.1與0.2轉為二進制后是無窮
處理方式
一種方式使用toFixed 方法進行小數截取

將小數轉為整數進行計算后,再轉為小數也可以解決精度問題

5.Math
(1)取極限值
使用 min 與 max 可以取得最小與最大值

使用apply 來從陣列中取值
![]()
(2)舍入處理
取最接近的向上整數
得到最接近的向下整數
![]()
四舍五入處理
![]()
(3)random
random 方法用于回傳 >=0 且 <1 的亂數(包括0但不包括1),
回傳0~5的亂數,不包括5

回傳0~5的亂數,包括5
下面取2~5的亂數(不包括5)公式 :
min+Math.floor(Math.random()* (Max-min))

下面是隨機點名的示例

6.Date
(1)宣告日期
獲取當前日期時間

計算腳本執行時間

使用展示運算子處理更方便
(2)型別轉換
將日期轉為數值型別就是轉為時間戳單位是毫秒
有時后臺提供的日期為時間戳格式,例如將時間戳轉換為標準日期的方法

(3)物件方法
格式化輸出日期
封裝函式用于復用
function dateFormat(date, format = "YYYY-MM-DD HH:mm:ss") {
const config = {
YYYY: date.getFullYear(),
MM: date.getMonth() + 1,
DD: date.getDate(),
HH: date.getHours(),
mm: date.getMinutes(),
ss: date.getSeconds()
};
for (const key in config) {
format = format.replace(key, config[key]);
}
return format;
}
console.log(dateFormat(new Date(), "YYYY年MM月DD日"));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/291502.html
標籤:其他
