发表于: 2021-07-20 23:52:40

1 1842


今天完成的事情:  学习了 coding (编码)技巧;;JavaScript  valueOf()方法;;


明天计划的事情:拒绝划水,学习学习!!!


收获:

JavaScript  valueOf()方法:

定义与用法:

valueOf () 的方法返回 Math 对象的原始值,该原始值有Math 对象派生的所有对象继承。

valueOf () 方法通常由JavaScript 在后台自动调用,并不显示地出现在代码中。

语法: mathObject.valueOf () ;


总结:

1),同样是字符串,则直接进行字符串值得比较;

2),是数字,则需要将字符串转化为数字,然后进行比较;

3),有布尔类型,则要将布尔类型转化为 0 或 1 ,然后进行比较;

4),对象或数组类型,则需要调用toString () 或者 valueOf () 方法转化为简单的类型,然后进行比较,;

对象转化为简单类型时会优先调用valueOf 方法,则会在调用 toString 方法,最终得到比对结果。

但需要注意的一点是Date 对象不满足上述的规则,Date 对象的toString 和 valueOf 方法都是重新定义过的,默认会调用toString 方法。


学到的其中一部分


    // 数组的对象结构
    const str = "2000,wangloong,boy,21"
    const { 1name2sex3age } = str.split(','// 1、2、3为 split之后的数组下标; name、sex、age为指定的变量,值分别为wangloong、boy、21;
    console.log(namesexage//kangkang boy 1997

    // 创建纯对象
    const obj = {}
    console.log(obj)
    console.log(obj.constructor)
    console.log(obj.toString)
    console.log(obj.hasOwnProperty)

    const api = Object.create(null)
    console.log(api// {}
    console.log(api.constructor) // undefined
    console.log(api.toString// undefined
    console.log(api.hasOwnProperty// undefined

    // 没见过的valueOf
    const abd = {
        i: 1,
        valueOffunction () {
            if (this.i === 1) {
                this.i++
                return 1
            } else {
                return 2
            }
        }
    }
    if (abd == 1 && abd == 2) {
        console.log(abd)
    }


    // 清空和拦截数组
    // const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    // 这时候可能你会想到slice()和splice()

    // slice()
    // 返回一个索引和另一个索引之间的数据(不改变原数组), slice(start, end)有两个参数(start必需, end选填), 都是索引, 返回值不包括end
    const arr_01 = [123456789]
    const arr2 = arr_01.slice(05)
    console.log(arr2)//[1,2,3,4,5]

    // splice()
    // 用来添加或者删除数组的数据, 只返回被删除的数据, 类型为数组(改变原数组)
    const arr_02 = [123456789]
    arr_02.splice(5)
    console.log(arr)//[1,2,3,4,5]

    //最简单的清空和截短数组的方法就是改变 length 属性
    const arr_03 = [123456789]
    arr_03.length = 5
    console.log(arr_03)//[1,2,3,4,5]
    arr_03.length = 0//清空数组
    console.log(arr_03);



返回列表 返回列表
评论

    分享到