JSLint praneša apie netikėtą „ ir „| - Norėčiau tai išaiškinti.

Bandau gauti „JavaScript“ kodą 100% JSLint.

Turiu JS kodą, kurį paėmiau iš kitos vietos UUID sukūrimui. Šis kodas turi šią eilutę:

 s[16] = hexDigits.substr((s[16]  0x3) | 0x8, 1); 

Šioje eilutėje JSLint generuoja du klaidų pranešimus:

 1) Unexpected use of ' 2) Unexpected use of '|' 

Aš nesuprantu, kodėl - džiaugiuosi patarimu, kaip pakartoti, kad būtų pašalintas klaidos pranešimas.

44
14 июня '10 в 21:18 2010-06-14 21:18 Zhami yra birželio 14 d., 10 val., 21:18, 2010-06-14 21:18
@ 3 atsakymai

„Kodėl“ priežastis yra ta, kad faktinės bitų operacijos JS yra labai retos, ir tie operatoriai, kurie rodomi JS kode, beveik visada yra klaidingi Būlio versijoms ( > , || ). Štai kodėl JSLint rūpinasi. Tai yra teisinis bitų operacijų naudojimas. Manau, kad galite išjungti įspėjimą naudodami bitwise vėliavą:

  
73
14 июня '10 в 21:25 2010-06-14 21:25 Ben Zotto atsakymą pateikė birželio 14 d. 10 d. 21:25 2010-06-14 21:25

Ar suteikėte jam bitwise parinktį? Ši parinktis įspėja apie visas bitų operacijų programas, nes jos dažniausiai neveikia „Javascript“ (įmontuoti plūdurai turi būti konvertuojami į int, kad būtų naudojami bitai, ir tada jie konvertuojami atgal)

3
14 июня '10 в 21:22 2010-06-14 21:22 atsakymą pateikė Michael Mrozek birželio 10 d., 10 val. 22:22 2010-06-14 21:22

Jei naudojate šį „JavaScript“ pūkelių įrankį , komandinėje eilutėje galite nurodyti konfigūracijos failą, kuris nurodo, kurie patikrinimai įgalinti / išjungti.

Pvz., Dažniausiai skambinau štai taip:

 jsl -conf jsl.conf 

su jsl.conf failu, kuris atrodo

 #---------------------------------------------------------------------------- # # This is a slightly edited version of the jsl.default.conf file that comes # with the install package for JavaScript Lint. # #---------------------------------------------------------------------------- # # Configuration File for JavaScript Lint 0.3.0 # Developed by Matthias Miller (http://www.JavaScriptLint.com) # # This configuration file can be used to lint a collection of scripts, or to # enable or disable warnings for scripts that are linted via the command line. # ### Warnings # Enable or disable warnings based on requirements. # Use "+WarningName" to display or "-WarningName" to suppress. # -no_return_value # function {0} does not always return a value +duplicate_formal # duplicate formal argument {0} -equal_as_assign # test for equality (==) mistyped as assignment (=)?{0} +var_hides_arg # variable {0} hides argument -redeclared_var # redeclaration of {0} {1} -anon_no_return_value # anonymous function does not always return a value +missing_semicolon # missing semicolon +meaningless_block # meaningless block; curly braces have no impact +comma_separated_stmts # multiple statements separated by commas (use semicolons?) +unreachable_code # unreachable code -missing_break # missing break statement -missing_break_for_last_case # missing break statement for last case in switch -comparison_type_conv # comparisons against null, 0, true, false, or an empty string allowing implicit type conversion (use === or !==) -inc_dec_within_stmt # increment (++) and decrement (--) operators used as part of greater statement +useless_void # use of the void type may be unnecessary (void is always undefined) +multiple_plus_minus # unknown order of operations for successive plus (eg x+++y) or minus (eg x---y) signs +use_of_label # use of label -block_without_braces # block statement without curly braces -leading_decimal_point # leading decimal point may indicate a number or an object member +trailing_decimal_point # trailing decimal point may indicate a number or an object member -octal_number # leading zeros make an octal number +nested_comment # nested comment -misplaced_regex # regular expressions should be preceded by a left parenthesis, assignment, colon, or comma -ambiguous_newline # unexpected end of line; it is ambiguous whether these lines are part of the same statement -empty_statement # empty statement or extra semicolon -missing_option_explicit # the "option explicit" control comment is missing +partial_option_explicit # the "option explicit" control comment, if used, must be in the first script tag +dup_option_explicit # duplicate "option explicit" control comment +useless_assign # useless assignment -ambiguous_nested_stmt # block statements containing block statements should use curly braces to resolve ambiguity +ambiguous_else_stmt # the else statement could be matched with one of multiple if statements (use curly braces to indicate intent) -missing_default_case # missing default case in switch statement +duplicate_case_in_switch # duplicate case in switch statements +default_not_at_end # the default case is not at the end of the switch statement +legacy_cc_not_understood # couldn't understand control comment using  syntax +jsl_cc_not_understood # couldn't understand control comment using  syntax +useless_comparison # useless comparison; comparing identical expressions +with_statement # with statement hides undeclared variables; use temporary variable instead +trailing_comma_in_array # extra comma is not recommended in array initializers +assign_to_function_call # assignment to a function call -parseint_missing_radix # parseInt missing radix parameter ### Output format # Customize the format of the error message. # __FILE__ indicates current file path # __FILENAME__ indicates current file name # __LINE__ indicates current line # __ERROR__ indicates error message # # Visual Studio syntax (default): +output-format __FILE__(__LINE__): __ERROR__ # Alternative syntax: #+output-format __FILE__:__LINE__: __ERROR__ ### Context # Show the in-line position of the error. # Use "+context" to display or "-context" to suppress. # +context ### Semicolons # By default, assignments of an anonymous function to a variable or # property (such as a function prototype) must be followed by a semicolon. # +lambda_assign_requires_semicolon ### Control Comments # Both JavaScript Lint and the JScript interpreter confuse each other with the syntax for # the  control comments and JScript conditional comments. (The latter is # enabled in JScript with @cc_on@). The  syntax is preferred for this reason, # although legacy control comments are enabled by default for backward compatibility. # #+legacy_control_comments ### JScript Function Extensions # JScript allows member functions to be defined like this: # function MyObj() {  } # function MyObj.prototype.go() {  } # # It also allows events to be attached like this: # function window::onload() {  } # # This is a Microsoft-only JavaScript extension. Enable this setting to allow them. # -jscript_function_extensions ### Defining identifiers # By default, "option explicit" is enabled on a per-file basis. # To enable this for all files, use "+always_use_option_explicit" -always_use_option_explicit # Define certain identifiers of which the lint is not aware. # (Use this in conjunction with the "undeclared identifier" warning.) # # Common uses for webpages might be: #+define window #+define document ### Interactive # Prompt for a keystroke before exiting. #+pauseatend ### Files # Specify which files to lint # Use "+recurse" to enable recursion (disabled by default). # To add a set of files, use "+process FileName", "+process Folder\Path\*.js", # or "+process Folder\Path\*.htm". # 

PS Patikrinkite mano „JavaScript“ UUID puslapį , kuris, beje, pereina visus pirmiau minėtus „JSLint“ čekius: -)

0
15 июня '10 в 8:27 2010-06-15 08:27 atsakymas pateikiamas broofa birželio 15 d., 10 val. 08:27 2010-06-15 08:27

Peržiūrėkite kitus klausimus apie „ arba užduokite klausimą