开发者问题收集

以下 JS 代码不适用于函数中的 .length 属性

2019-11-23
120
let isValidPassword = function (password) {
    if (password.length <= 8 && password.includes('password')) {
        console.log('Password is not according to Company Policy.');
    } else {
        console.log('Password is accepatble!');
    }
}
isValidPassword();

此处 password.length 不起作用。

错误为: TypeError:无法读取未定义的属性“length” 位于 isValidPassword(C:\Users\Gitanshu Choudhary\Desktop\modern_js\hello_earth.js:163:18) 位于 Object。 (C:\Users\Gitanshu Choudhary\Desktop\modern_js\hello_earth.js:169:1) 在 Module._compile (internal/modules/cjs/loader.js:956:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10) 在 Module.load (internal/modules/cjs/loader.js:812:32) 在 Function.Module._load (internal/modules/cjs/loader.js:724:14) 在 Function.Module.runMain (internal/modules/cjs/loader.js:1025:10) 在 internal/main/run_main_module.js:17:11

2个回答

您在这里也犯了一个错误,即 && ,您的意思是如果密码小于8并且其中必须存在密码字符串,它会给您正确的结果,否则就是错误的。如果两者都为真,则代码将被执行,但它是假的。

true && true // true
true && false // false

这是正确的结果:

let isValidPassword = function (password) {
    if (password.length <= 8 || password.includes('password') ) {
        console.log('Password is not according to Company Policy.');
    } else {
        console.log('Password is accepatble!');
    }
}
isValidPassword('passwordkksk');

谢谢!

Ericgit
2019-11-23

调用函数时,您必须传递一些参数。

在您的情况下,它应该是这样的:

isValidPassword('password');

或使用变量

let pass = 'abc@123';
isValidPassword(pass)

Yash Sartanpara
2019-11-23