zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

有關js函數,方法的一些補充總結

數據類型,構造函數,原型和原型鏈的一些講解補充

一、數據類型#

1.5 個基本類型#

string
number
boolean
undefined 未定義
null 值為空
symbol 表示一個符號,符號類型是唯一的並且是不可修改的

最常見的還是前三種,字符串,數字,布爾值

2. 常見的引用類型#

引用類型是一種數據結構,用於將數據和功能組織在一起

對象-Object, 陣列-Array, 函數-Function, 正則-RegExp, 日期-Date 等

二、函數#

1. 什麼是函數?#

  1. 具有獨立功能的代碼塊,在 js 中使用 function 關鍵字定義函數
  2. 讓代碼結構更加清晰,提高代碼可用性
  3. js 函數的分類:自定義函數和系統函數

2. 自定義函數#

有一種匿名函數,沒有名字的函數,創建閉包,避免造成全局變量的污染

匿名自執行函數

  1. 概念:匿名函數的定義完成後立即執行,執行函數表達式
  2. 作用:實現閉包和創建獨立的命名空間
  3. 使用:分組操作符 (),void 操作符,~ 操作符,! 操作符等等
  4. 使用場景:函數表達式,對象屬性,事件,事件參數,返回值
  5. 定義完匿名函數後,一定要調用
// 函數表達式
window.onload = function() {
    let funcobj = function() {
        alert("函數表達式中的匿名函數")
    }
    funcobj();
}
// 對象屬性
window.onload = function() {
    let obj = {
        name: function() {
            alert('對象屬性中的匿名函數')
        }
    }
    obj.name();
}

3. 內置函數#

放在全局下面叫做函數,放在對象裡面被叫做方法,對象的方法

  1. 常規函數
alert() // 彈出框
confirm()   // 彈出一個確認框
prompt()    // 彈出一個輸入框
isNaN()     // 判斷是否為數字
parseInt()  // 將字符串或浮點數轉換為整數
parseFloat()    // 將字符串轉換為整數或浮點數
eval()      // 計算表達式的結果
  1. 陣列函數

for循環遍歷陣列

var arr = [1,2,3,4];
for(var i = 0; i<arr.length; i++) {
    console.log(arr[i])
}

// 輸出 1,2,3,4

通過for in遍歷陣列

var arr = [1,2,3,4];
for (var i in arr) {
    console.log(arr[i]);
}

// 輸出 1,2,3,4
// 增加
unshift()   // 添加元素在陣列首部,返回值是陣列長度
push()      // 添加元素在陣列尾部,返回值是陣列長度
conat()     // 連接兩個陣列,返回值是連接後的陣列
    var arr1 = [1];
    var arr2 = [2];
    let arr = arr1.concat(arr2);
    console.log(arr); // [1,2]

/*****************************************/
// 刪除
pop()       // 刪除陣列最後一個元素,返回值是刪除的元素
shift()     // 刪除陣列第一個元素,返回值是刪除的元素
splice(a,b) // 刪除指定位置a後的b個元素,返回值是刪除的元素
slice(a,b)  // 刪除從a位置到b位置之間的元素

/*****************************************/
// 查找
indexOf()   // 判斷陣列是否包含指定元素,存在返回元素,不存在返回-1
includes()  // 判斷陣列是否包含指定元素,存在返回true,不存在返回false

/*****************************************/
// 其他
sort()      // 將陣列按照規則排序
    var arr1 = [4,5,6];
    var arr2 = [1,2,3];

    var arrAscSort = arr5.sort((a, b) => a-b); // 升序排序
    console.log(arrAscSort); // [ 1, 1, 2, 3, 5, 6 ]
    
    var arrDescSort = arr5.sort((a, b) => b-a); // 降序排序
    console.log(arrDescSort); // [ 6, 5, 3, 2, 1, 1 ]

reerse()    // 陣列反轉
    var arr = [1,2,3,4,5,6];
    // 直接通過reverse()方法調用
    console.log(arr.reverse())  // [6,5,4,3,2,1]

Array.from()    // 將一串數據轉換為陣列形式
    var str = '將一串數據轉換為陣列形式'
    console.log(Array.from(str))
    // ["將", "一", "串", "數", "據", "轉", "換", "為", "陣", "列", "形", "式"]

Array.isArray() // 判斷一個變量是否為陣列
    var str = '將一串數據轉換為陣列形式'
    console.log(Array.isArray(str))
    // false
  1. 日期函數 Date ()

獲取時間

var time = new Date()
// 獲取當前時間
// Fri Nov 13 2020 20:21:35 GMT+0800 (中國標準時間)

getFullYear()   // 獲取當前年份
getMonth()      // 獲取當月月份  -1
getDate()       // 獲取當天日期
getHours()      // 獲取當前小時
getMinutes()    // 獲取當前分鐘
getSeconds()    // 獲取當前秒
getMilliseconds()   // 獲取當前毫秒
getTime()       // 時間戳-獲取1970年至今的毫秒數

設置時間

setYear()       // 設置年份
setMonth()      // 設置月份
setDate()       // 設置日期
setHours()      // 設置小時
setMinutes()    // 設置分鐘
setSeconds()    // 設置秒
  1. 數學函數 Math

主要常用的數學函數方法

Math.abs()  // 絕對值
Math.ceil() // 向上取整
Math.floor()// 向下取整
Math.round()// 四捨五入
Math.random()   // 生成0-1之間的隨機數

random () 的延伸用法---生成指定位的隨機數

function getRandomNumber(min, max){
    return Math.floor(Math.random()*(max - min)) + min;
}
console.log(getRandomNumber(1000, 9999));
  1. 字符串函數
indexOf()   // 查找字符串,返回索引值
    var arr = ["字", "符", "串", "函", "數"]
    console.log(arr.indexOf("串"))  // 2

split()     // 將字符串按照指定的分隔符分割開來
    var str = "字符串函數"
    console.log(str.split(''))      // ["字", "符", "串", "函", "數"]

trim()      // 清除字符串兩端的空格
    var str = "   字符串函數   "
    console.log(str)        // [   字符串函數   ]
    console.log(str.trim()) // [字符串函數]

match()     // 按照制定規則查找值
    var str = "字符串函數字符串函數"
    console.log(str.match(/字符串/))    // 字符串
    document.write(str.match(/字符串/)) // 字符串

search()    // 返回字符串

首次出現的位置
    var str = "字符串函數字符串函數"
    console.log(str.search('串'))   // 2

replace()   // 替換指定的字符串
    var str = "字符串函數字符串函數"
    console.log(str.replace('字','函'))
    // 函符串函數字符串函數

substring(a,b) // 從指定位置切割字符串,左閉右開
    // 從索引a,截取到b
    var str = "字符串函數字符串函數"
    console.log(str.substring(0,3)) // 字符串

substr(a,b)    // 從指定位置切指定個字符
    // 從索引a開始,截取b個字符
    var str = "字符串函數字符串函數"
    console.log(str.substr(0,3))    // 字符串
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。