检查参数是否传递给Java Script函数

KAP*_*ILP 27 javascript

调用JS函数

alertStatement()
Run Code Online (Sandbox Code Playgroud)

功能定义

function alertStatement(link) {
    if (link) {
        alert('A');     
    }

    if (link!=null) {
        alert('B');     
    }   
}
Run Code Online (Sandbox Code Playgroud)

这两个语句在带有Tomcat的Windows Env中都能正常工作,但它们都没有在生产中执行(Linux服务器).有没有其他方法来比较变量使其工作?

我使用以下javascript代码工作.

function alertStatement(link) {
    if (link!==undefined){
        alert('A');     
    }
}
Run Code Online (Sandbox Code Playgroud)

所以最后undefined对我有用,由于某种原因,null比较不起作用

jfr*_*d00 59

要查看参数是否具有可用值,只需检查参数是否未定义.这有两个目的.它不仅检查是否传递了某些内容,还检查它是否具有可用值:

function alertStatement(link) {
    if (link !== undefined) {
        // argument passed and not undefined
    } else {
        // argument not passed or undefined
    }
}
Run Code Online (Sandbox Code Playgroud)

有些人喜欢使用这样的类型:

function alertStatement(link) {
    if (typeof link !== "undefined") {
        // argument passed and not undefined
    } else {
        // argument not passed or undefined
    }
}
Run Code Online (Sandbox Code Playgroud)

null是一个特定的价值. undefined如果没有通过将是什么.

如果您只是想知道是否通过了任何事情并且不关心其价值是什么,您可以使用arguments.length.

function alertStatement(link) {
    if (arguments.length) {
        // argument passed
    } else {
        // argument not passed
    }
}
Run Code Online (Sandbox Code Playgroud)

  • `arguments.length === 0`表示没有传递参数.当通过`alertStatement(null)`或`alertStatement(undefined)`调用时,当前代码将执行第一个分支,因为`null == undefined`. (5认同)
  • @Mike - 你试图解决我的解决方案无法解决的问题是什么?我没有得到downvote的理由.我正在测试链接参数是否以合法值传递. (3认同)