有没有办法将下面的JavaScript代码写成一行?
this.isContactPage = (window.location.pathname === '/contact');
if (!this.isContactPage) return false;
如果this.isContactPage
为真,则该方法继续。
脚本中的其他位置需要属性this.isContactPage
。
答案 0 :(得分:5)
return !(this.isContactPage = (window.location.pathname === '/contact'));
另一个例子:
console.log(window.prop); // undefined
console.log(!(window.prop = true) || undefined); // undefined
console.log(!(window.prop = true)); // false
console.log(window.prop); // true
答案 1 :(得分:2)
这将是相当密集和“模糊”的代码,但您可以在条件中内联分配:
if ( !this.isContactPage = ( window.location.pathname == '/contact' ) ) return false;
如果为this.isContactPage
赋值false
,则只会返回该函数,否则函数不会返回并继续执行,而不是:
return ( this.isContactPage = ( window.location.pathname == '/contact' ) );
会立即返回true
或false
。
答案 2 :(得分:1)
return !this.isContactPage = (window.location.pathname === '/contact')
答案 3 :(得分:1)
这样你就不会有错误!
this.isContactPage = /contact/gi.test(window.location.pathname);
if (!this.isContactPage) return false;
或
return !(/contact/gi.test(window.location.pathname))
答案 4 :(得分:1)
我有一些东西让你的代码尽可能短!
return !(this.isContactPage=location.pathname=='/contact')