1. 程式人生 > >前端(十四)—— JavaScript基礎:Number、Date類、字串、陣列、Math類、正則

前端(十四)—— JavaScript基礎:Number、Date類、字串、陣列、Math類、正則

JS常用類:Number類、Date類、Math類、字串、陣列、正則

一、Number

1、常用數字

整數:10
小數:3.14
科學計數法:1e5 | 1e-5
正負無窮:Infinity | -Infinity

2、常用進位制

二進位制:0b1010  以0b開頭
八進位制:012     以0開頭
十進位制:10
十六進位制:0xA    以0x開頭

3、NaN

非數字型別,通過isNaN()進行判斷

4、常用常量

最大值:MAX_VALUE(1.7976931348623157e+308)
最小值:MIN_VALUE(5e-324)
正負無窮:NEGATIVE_INFINITY | POSITIVE_INFINITY(Infinity | -Infinity)

5、常用例項方法

toExponential(n) => 3.14.toExponential(1) => 3.1e+0 (先科學記數,再確定精度,n為小數精度)
toFixed(n) => 3.14.toFixed(1) => 3.1 (先確定精度,再普通記數,n為小數精度)
toPrecision(n) => 13.14.toPrecision(1|2) => 1e+1|13 (先確定精度,再記數,n為位數精度)
toString(n) => 轉換為指定進位制的字串,n代表進位制
v-hint:經典bug數字13.145

二、時間

1、建立並獲取時間

var date = new Date();

2、時間戳

date.getTime();

3、獲取時間

年:date.getFullYear()
月:date.getMonth() + 1
日:date.getDate()
星期:date.getDay()
小時:date.getHours()
分鐘:date.getMinutes()
秒:date.getSeconds()
毫秒:date.getMilliseconds()

4、常見格式時間

getUTCFullYear()
getUTCDate()
getUTCHours()

三、字串

1、常用字串

'string' | "string" | 'my name is "zero"' | "I'm boy" | "I \"love\" you"

2、常用屬性

length:字串長度

3、常用方法

charAt(n):指定索引字元,同[n]
concat(str):將目標字串拼接到指定字串之後
indexOf(str):指定字串第一次出現的位置
lastIndexOf(str):指定字串最一次出現的位置
replace(re, str):將正則匹配到的字串替換為指定字串
substr(n, m):從索引n開始,擷取m個字元長度(m省略代表擷取到最後)
substring(n, m):從索引n開始,擷取到索引m(m省略代表擷取到最後)
slice(n, m):同substring(n, m)
split(re):以指定正則將字串拆分為陣列
toUpperCase():轉換為大寫
toLowerCase():轉換為小寫
trim():去除首尾空白字元

四、陣列

1、常見陣列

[1, 2, 3] | ['1', '2', '3'] | [1, '2', true]

2、常用屬性

length:陣列元素個數

3、常用基礎方法

concat(arr):將目標陣列拼接到指定陣列之後
indexOf(ele):指定元素第一次出現的位置
lastIndexOf(ele):指定元素最一次出現的位置
reverse():反轉陣列
includes(ele, n):從索引n開始往後,元素ele是否在陣列中,做全等匹配,索引從頭開始n可以省略(in只做值匹配)
fill(ele):以指定元素填充整個陣列(一般用於清空陣列中的資料,不操作長度)
slice(n, m):從索引n開始,擷取到索引m(m省略代表擷取到最後)
join(str):以指定字元連線成字串

4、增刪改方法

push(ele):從尾加
unshift(ele):從頭加

pop():從尾刪
shift():從頭刪

splice(begin, length, ...eles):完成增刪改
// begin開始索引
// length長度
// 新元素們(可以省略)
arr=[1,2,3,4,5];
// 從頭加
arr.splice(0, 0, 0);  // 從索引0前方(包括索引0位置)開始操作,操作原陣列0個長度,結果多了個元素0
console.log(arr);
// 0, 1, 2, 3, 4, 5

// 從尾加
arr.splice(arr.length, 0, 6);   // 注意是length,不是length-1
console.log(arr);
// 0, 1, 2, 3, 4, 5, 6

// 從頭刪
arr.splice(0, 1) // 從索引0開始(包括索引0位置),操作原陣列一位,替換的新值省略代表刪除
console.log(arr);
// 1, 2, 3, 4, 5, 6

// 從尾刪
arr.splice(arr.length - 1, 1)      // 注意是length-1,不是length
console.log(arr);
// 1, 2, 3, 4, 5

// 替換
arr.splice(2, 1, "3", [0, 0], "3");  // 從索引2開始,用"3", [0, 0], "3"替換掉1位
console.log(arr);

5、回撥函式方法

filter(function(value, index){ return true | false}):過濾器
every(function(value, index){ return 條件表示式; }):全部滿足條件
some(function(value, index){ return 條件表示式; }):部分滿足條件
reduce(function(prev,value,index){ return prev * value; }):累積
sort(function(o, n){ return o > n }):正逆向排序
    // 過濾器: filter

    // 回撥函式
    // 引數: 值, 索引, 所屬陣列
    // 返回值: true | false

    // 過濾器返回值: 過濾後得到的新陣列

    // 過濾掉不滿足條件的資料
    // 合為滿足條件的資料

    // 過濾器回撥函式的執行次數 = 被過濾陣列的元素個數
    // 需要回調的函式
    var getResult = function (v, i) {
        // return true;
        if (v < 5) {
            return true;
        }
    }
    var newArr = arr.filter(getResult);

    console.log(arr);
    console.log(newArr);


    // 全部滿足: every

    // 回撥函式
    // 引數: 值, 索引, 所屬陣列
    // 返回值: 值得條件表示式

    // 過濾器返回值: true | false

    // true:所有元素都滿足條件
    // false:有一個不滿足條件即可
    var res = arr.every(function(v) {
        return v > 3;
    });
    console.log(res);


    // 部分滿足: some
    res = arr.some(function(v) {
        return v > 3;
    });
    console.log(res);


    // 累積: reduce

    arr = [4, 2, 1, 3, 5];
    res = arr.reduce(function(prev,value,index){ 
        return prev * value;
    })
    console.log(res); // 4*2*1*3*5


    // 排序
    newArr = arr.sort(function(o, n) {
        // return o > n;  // 升序, 沒有回撥函式
        return o < n;  // 降序
    })
    console.log(newArr);

五、Math

1、常用常量

E:返回算術常量 e,即自然對數的底數(約等於2.718)
LN2:返回 2 的自然對數(約等於0.693)
LN10:返回 10 的自然對數(約等於2.302)
LOG2E:返回以 2 為底的 e 的對數(約等於 1.4426950408889634)
LOG10E:返回以 10 為底的 e 的對數(約等於0.434)
PI:返回圓周率(約等於3.14159)

2、常用方法

abs(x):返回 x 的絕對值
ceil(x):向上取整
floor(x):向下取整
max(...n):求最大值
min(...n):求最小值
pow(x,y):返回 x 的 y 次冪
random():返回 0 ~ 1 之間的隨機數
round(x):四捨五入

六、正則

1、正則物件

// 方法一:建構函式
var re = new RegExp('^\\w', 'igm');
// 方法二:字面量,將熱證表示式放在 // 之間
var re = /^\w/igm;

2、修飾符

i:不區分大小寫
g:全文匹配
m:多行匹配

3、正則方法

test():匹配目標字串,結果為 true|false
exec():匹配目標字串,結果為第一條結果所有資訊的陣列

4、字串方法

match(re):匹配指定正則,結果為陣列(可全文匹配)
search(re):匹配指定正則,結果為匹配的索引,反之-1
replace(re, newStr):匹配指定正則,替換匹配的結果(可全文匹配)
split(re, n):按正則進行拆分,n的值可以決定結果的陣列長度(可選引數)
str = "abc123x9y8z7\n123";
re = /^\d/m;
arr = str.match(re);
console.log(arr);