JS1-5

作者: Summerdise | 来源:发表于2019-12-09 16:05 被阅读0次
    • 构造函数创建
    var fun = new Function("console.log('hello world');");
    
    • 函数声明
    function fun(形参1,形参2){
      console.log(形参1+形参2);
    }
    
    • 匿名函数
    var fun = function(形参1,形参2){
      console.log(形参1+形参2);
    }
    

    三种方法都是创建了一个名为fun的函数。

    b会打印出5,原因是在函数作用域中创建变量b的时候没有使用var关键词,系统默认为创建了window.b属性,即为全局变量,所以可以打印出后续赋值的5.

            function fun(str, n) {
                var printStr = "";
                if (n < 0) {
                    console.log(str);
                } else {
                    for (var i = 0; i < n; i++) {
                        printStr += str;
                    }
                }
                console.log(printStr);
            }
            fun("hello", 3);
    
    1. 根据变量提升和函数提升原理,结果应为:
    undefined
    2
    
    1. 分别是functionnumber。其中第一个var初始化被提前,之后是函数覆盖原来定义;第二个var初始化也被提前,但在原有位置(即函数后)还有一个赋值语句,又将foo变量转换为number类型。
            function multiplicationCalculator() {
                var result = 1;
                for (var i = 0; i < arguments.length; i++) {
                    result *= arguments[i];
                }
                return result;
            }
            var a = multiplicationCalculator(3, 6); // 18
            var b = multiplicationCalculator(3, 6, 2); // 36
            var c = multiplicationCalculator(1, 2, 5, 6); // 60
            console.log(a);
            console.log(b);
            console.log(c);
    
            function add(firstNum) {
                return function(secondNum) {
                    return function(thirdNum) {
                        return result = firstNum + thirdNum + secondNum;
                    }
                }
            }
            var a = add(2)(3)(4);
            console.log(a);
    

    相关文章

      网友评论

          本文标题:JS1-5

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