2016-08-17 3 views
0

У меня есть файл JavaScript, к которому я посылаю параметрJavaScript остановка скрипт, если условие не выполнено

<script lang="en" src="/test/load.js" ></script> 

В файле У меня есть сценарий, подобный этот:

! function() 
{ some code 
    var lag = (script.getAttribute('lang') == null || script.getAttribute('lang') == '') ? exit : script.getAttribute('lang'); 

Идея заключается в том что я не хочу выполнять код после указанного выше в случае отсутствия параметра lang или пустой строки. Как я могу это сделать, я попытался с помощью

exit 

или

break 

, но они не работают для меня.

+3

Что о 'return'? – AgataB

+1

... и, пожалуйста, не используйте оператор '?:' Для операторов. ? Оператор используется для выражений. '{/ * некоторый код * /; var lang = script.getAttribute ('lang'); if (lang == null) return; if (strlen (lang) == 0) return;/* more code * /} ' – ikrabbe

ответ

5

Я думаю, что главная проблема заключается в том, что вы пытаетесь использовать условный оператор, как небрежный альтернатива в if заявлении.

Просто используйте if заявление, с return:

var lang = script.getAttribute('lang'); 
if (!lang) { 
    return; 
} 
+0

Да, проблема в том, что я пытался не использовать if-инструкцию, которая, очевидно, была ошибкой. Благодаря! Я написал это следующим образом: 'if (script.getAttribute ('lang') == null || script.getAttribute ('lang') == '') \t { \t \t return; \t} \t еще вар языки \t = (script.getAttribute («языки»)); ' – Dimentica

+0

Я хотел бы добавить, что тройной оператор не является«небрежной альтернативой»- это просто не по назначению. Он предназначен для оценки выражения, когда на самом деле выражение не нуждается в оценке, а скорее должно выполняться оператор ('return'). Я поддерживаю ваш ответ, поэтому я не критикую, просто уточняя, что тернарный оператор сам по себе не является неаккуратным, но неправильное использование чего-либо приведет к проблемам. – Josh

+0

@Josh Да, оператор замечательный, когда он используется для правильной цели, но некоторые люди используют его, когда они действительно должны использовать оператор 'if', просто чтобы сохранить несколько нажатий клавиш, и это неряшливо. – JLRishe

1

использовать это после того, как ваше заявление

return false; 
1

Это код внутри функции, верно? Как насчет return?

+0

, если это не код внутри функции, вы всегда можете заставить ее быть в функции. – ikrabbe

1

Используйте это, чтобы остановить скрипт

return false;