JS函数多个返回值

本文介绍了一种使用JavaScript来获取浏览器窗口尺寸的方法。通过检查`window.innerWidth`、`document.documentElement.clientWidth`等属性,该函数能兼容多种浏览器环境,并返回当前浏览器窗口的宽度和高度。
function getClientSize() {
    var a = h = 0;
    if (window.innerHeight) {
        a = window.innerWidth;
        h = window.innerHeight
    } else {
        if (document.documentElement && document.documentElement.clientHeight) {
            a = document.documentElement.clientWidth;
            h = document.documentElement.clientHeight
        } else {
            a = document.body.clientWidth;
            h = document.body.clientHeight
        }
    }
    return {
        width: a,
        height: h
    };
}




var w = getClientSize().width;
var h = getClientSize().height - 97;
### JavaScript 函数返回值机制 在 JavaScript 中,函数通过 `return` 语句来定义其返回值。如果没有显式的 `return` 语句,默认情况下会返回 `undefined`[^1]。 当函数执行到带有 `return` 的语句时,它会立即停止进一步的代码执行并把控制权交还给调用者。此时,`return` 后面表达式的结果会被作为该函数的最终返回值传递出去[^2]。 #### 基本语法 以下是使用 `return` 语句的一个简单例子: ```javascript function multiply(x, y) { return x * y; } const product = multiply(4, 5); console.log(product); // 输出 20 ``` 在这个例子中,`multiply` 函数接收两个参数并将它们相乘后返回结果。调用此函数时,计算得到的数值被赋给了变量 `product` 并打印出来[^2]。 #### 返回复杂数据结构 除了基本的数据类型外,还可以让函数返回更复杂的结构比如数组或者对象: ```javascript function createPerson(name, age) { return { name: name, age: age }; } let person = createPerson('Alice', 30); console.log(person.name); // Alice console.log(person.age); // 30 ``` 这里展示了如何构建一个包含多个属性的对象并通过 `return` 将其送出[^1]。 #### 返回另一个函数 (高阶函数) 值得注意的是,在某些场景下我们可能希望从某个函数内部再创建一个新的函数然后将其作为外部可见的内容暴露出来。这通常用于闭包或者其他高级模式之中: ```javascript function outerFunction() { let counter = 0; function innerFunction() { counter += 1; return counter; } return innerFunction; } var incrementCounter = outerFunction(); console.log(incrementCounter()); // 输出 1 console.log(incrementCounter()); // 输出 2 ``` 在此案例里,`outerFunction()` 创建了一个局部计数器变量以及一个能够访问它的嵌套函数 `innerFunction` 。最后把这个内部方法当作整体输出的一部分交给外界去操作[^3]。 #### 不带 Return 的情况 如果不提供任何形式上的 `return` ,那么无论怎样运行完毕之后都会自动给出默认值即 `undefined` : ```javascript function doNothing() {} console.log(doNothing()); // undefined ``` 这种行为对于那些仅为了副作用而设计的方法来说可能是合理的;然而如果期待实际成果的话,则应该始终记得加入恰当形式下的退出指令[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值