美文网首页
2021-03-29 javascript 每日一题分享

2021-03-29 javascript 每日一题分享

作者: aaa8808dde01 | 来源:发表于2021-04-21 10:48 被阅读0次
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div>
        1.每个Symbol都是完全唯一的。传递给Symbol的参数只是给Symbol的一个描述。Symbol的值不依赖于传递的参数。当我们测试相等时,我们创建了两个全新的符号:第一个Symbol('foo'),第二个Symbol('foo'),
        这两个值是唯一的,彼此不相等,因此返回false
    </div>
    <div>
        2.reducer 函数接收4个参数:
        <p>Accumulator (acc) (累计器)</p>
        <p>Current Value (cur) (当前值)</p>
        <p>Current Index (idx) (当前索引)</p>
        <p>Source Array (src) (源数组)</p>

        reducer 函数的返回值将会分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。

        reducer 函数还有一个可选参数initialValue, 该参数将作为第一次调用回调函数时的第一个参数的值。如果没有提供initialValue,则将使用数组中的第一个元素。

        在上述例子,reduce方法接收的第一个参数(Accumulator)是x, 第二个参数(Current Value)是y。

        在第一次调用时,累加器x为1,当前值“y”为2,打印出累加器和当前值:1和2。

        例子中我们的回调函数没有返回任何值,只是打印累加器的值和当前值。如果函数没有返回值,则默认返回undefined。在下一次调用时,累加器为undefined,当前值为“3”, 因此undefined和3被打印出。

        在第四次调用时,回调函数依然没有返回值。累加器再次为 undefined ,当前值为“4”。undefined和4被打印出


    </div>
    <div>
        3.一元操作符 ++ 先返回 操作值, 再累加 操作值。num1的值是10, 因为increaseNumber函数首先返回num的值,也就是10,随后再进行 num的累加。

        num2是10因为我们将 num1传入increasePassedNumber. number等于10(num1的值。同样道理,++ 先返回 操作值, 再累加 操作值。) number是10,所以num2也是10.
    </div>

    <div>
        4.JSON.stringify的第二个参数是 替代者(replacer). 替代者(replacer)可以是个函数或数组,用以控制哪些值如何被转换为字符串。

        如果替代者(replacer)是个 数组 ,那么就只有包含在数组中的属性将会被转化为字符串。在本例中,只有名为"level" 和 "health" 的属性被包括进来, "username"则被排除在外。data 就等于
        "{"level":19, "health":90}".

        而如果替代者(replacer)是个
        函数,这个函数将被对象的每个属性都调用一遍。函数返回的值会成为这个属性的值,最终体现在转化后的JSON字符串中(译者注:Chrome下,经过实验,如果所有属性均返回同一个值的时候有异常,会直接将返回值作为结果输出而不会输出JSON字符串),而如果返回值为undefined,则该属性会被排除在外。
    </div>
    <div>
        5.解构赋值
    </div>
    <div>
        6.delete操作符返回一个布尔值:true指删除成功,否则返回false. 但是通过 var, const 或 let 关键字声明的变量无法用 delete 操作符来删除。

        name变量由const关键字声明,所以删除不成功:返回 false. 而我们设定age等于21时,我们实际上添加了一个名为age的属性给全局对象。对象中的属性是可以删除的,全局对象也是如此,所以delete
        age返回true.
    </div>

    <div>
        7.Set对象是独一无二的值的集合:也就是说同一个值在其中仅出现一次。
        我们传入了数组[1, 1, 2, 3, 4],他有一个重复值1.以为一个集合里不能有两个重复的值,其中一个就被移除了。所以结果是 {1, 2, 3, 4}
    </div>


    <script>
        console.log('第1题')
        console.log(Number(2) === Number(2))
        console.log(Boolean(false) === Boolean(false))
        console.log(Symbol('foo') === Symbol('foo'))

        console.log('第2题')
        let arr = [1, 2, 3, 4]
        arr.reduce((x, y) => console.log(x, y));

        console.log('第3题')
        let num = 10;

        const increaseNumber = () => num++;
        const increasePassedNumber = number => number++;

        const num1 = increaseNumber();
        const num2 = increasePassedNumber(num1);

        console.log(num1);
        console.log(num2);

        console.log('第4题')
        const settings = {
            username: "lydiahallie",
            level: 19,
            health: 90
        };

        const data = JSON.stringify(settings, ["level", "health"]);
        console.log(data);

        console.log('第5题')
        const numbers = [1, 2, 3, 4, 5];
        const [y] = numbers;

        console.log(y);

        console.log('第6题')
        const name = "Lydia";
        age = 21;

        console.log(delete name);
        console.log(delete age);

        console.log('第7题')
        const set = new Set([1, 1, 2, 3, 4]);

        console.log(set);

        const person = { name: 'Lydia' }

        function sayHi(age) {
            console.log(`${this.name} is ${age}`)
        }

        sayHi.call(person, 211)
        sayHi.bind(person, 21)

        function sayHi() {
            return (() => 0)()
        }

        console.log(typeof sayHi())

        const numbers1 = [1, 2, 3]
        numbers1[10] = 11
        console.log(numbers1)
        console.log(numbers1[4])

        // (() => {
        //     let x, y
        //     try {
        //         throw new Error()
        //     } catch (x) {
        //         (x = 1), (y = 2)
        //         alert(x)
        //     }
        //     console.log(x)
        //     console.log(y)
        // })()


        // [[0, 1], [2, 3]].reduce(
        //     (acc, cur) => {
        //         return acc.concat(cur)
        //     },
        //     [1, 2]
        // )

        console.log("🥑" + "💻");

        const name1 = "Lydia Hallie"
        console.log(name1.padStart(13))
        console.log(name1.padStart(2))
       

    </script>
    <style>
        div {
            margin-bottom: 20px;
        }
    </style>
</body>

</html>
···

相关文章

网友评论

      本文标题:2021-03-29 javascript 每日一题分享

      本文链接:https://www.haomeiwen.com/subject/hnzacltx.html