02.26 Vue源碼中9個可借鑑的基礎方法

Vue源碼中9個可借鑑的基礎方法

1、基礎判斷

<code>    function isUndef(v) {        return v === undefined || v === null    }    function isDef(v) {        return v !== undefined && v !== null    }    function isTrue(v) {        return v === true    }    function isFalse(v) {        return v === false    }/<code>

2、檢查是否是原始值

<code>    function isPrimitive(value) {        return (            typeof value === 'string' ||            typeof value === 'number' ||            // $flow-disable-line            typeof value === 'symbol' ||            typeof value === 'boolean'        )    }/<code>

3、快速對象檢查

<code>    function isObject(obj) {        return obj !== null && typeof obj === 'object'    }/<code>

4、獲取值的原始類型字符串

<code>    var _toString = Object.prototype.toString;        function toRawType(value) {        return _toString.call(value).slice(8, -1)    }/<code>

5、嚴格的對象類型檢查

<code>    function isPlainObject(obj) {        return _toString.call(obj) === '[object Object]'    }    // 這裡大家可以思考一下為什麼使用這種方式,還有下面的正則檢查/<code>

6、嚴格的正則類型檢查

<code>    function isRegExp(v) {        return _toString.call(v) === '[object RegExp]'    }/<code>

7、檢查是夠是有效的數組下標

<code>    function isValidArrayIndex(val) {        var n = parseFloat(String(val));        return n >= 0 && Math.floor(n) === n && isFinite(val)    }/<code>

8、值轉換為實際的字符串

<code>    function toString(val) {        return val == null ?            '' :            Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) ?            JSON.stringify(val, null, 2) :            String(val)    }/<code>

9、值轉換為數字以進行持久化

<code>    function toNumber(val) {        var n = parseFloat(val);        return isNaN(n) ? val : n    }/<code>


分享到:


相關文章: