Primary Navigation

use strict

JSLint now accepts the use strict declaration. This is in anticipation of the next edition of ECMAScript. Strict mode will reject many problematic features

Message 1 of 7
, May 27, 2008

0 Attachment

JSLint now accepts the "use strict" declaration. This is in
anticipation of the next edition of ECMAScript. Strict mode will
reject many problematic features that are tolerated by the current
specification.

The strict mode declaration is a string that starts with the word "use
strict" that is followed by a semicolon. If it is present, it must be
the first statement of a compilation unit.

"use strict";

It is harmless in current programs. Someday, it will make programs
more reliable.

Douglas Crockford

Anticipating the next edition of ECMAScript, JSLint now allows the useExtension suffix on the use strict directive. It also allows the use strict directive as

Message 2 of 7
, Feb 11, 2009

0 Attachment

Anticipating the next edition of ECMAScript, JSLint now allows the
useExtension suffix on the use strict directive. It also allows the
use strict directive as the first statement of a function body.

James

I run all my JavaScript through a strict version of JSLint, run it with a careful eye toward any warning messages found in Firebug, and I think my code is

Message 3 of 7
, Nov 1, 2010

0 Attachment

I run all my JavaScript through a strict version of JSLint, run it with a careful eye toward any warning messages found in Firebug, and I think my code is quite good. What advantage is there to adding "use strict" to the top of my code? Will it catch errors I'm not already catching? Will it actually run faster or parse better in any browsers?

Thanks,
James

Rob Richardson

use strict identifies you re opting into the ECMAScript 5 mode of the same name. Rob ... From: jslint_com@yahoogroups.com [mailto:jslint_com@yahoogroups.com]

Message 4 of 7
, Nov 2, 2010

0 Attachment

"use strict" identifies you're opting into the ECMAScript 5 mode of the same
name.

I run all my JavaScript through a strict version of JSLint, run it with a
careful eye toward any warning messages found in Firebug, and I think my
code is quite good. What advantage is there to adding "use strict" to the
top of my code? Will it catch errors I'm not already catching? Will it
actually run faster or parse better in any browsers?

Thanks,
James

James

Yes, I understand. But why should I? If I always drive the speed limit, why should I put a speed regulator on my car? There may very well be a reason, I

Message 5 of 7
, Nov 3, 2010

0 Attachment

Yes, I understand. But why should I? If I always drive the speed limit, why should I put a speed regulator on my car? There may very well be a reason, I just want to know what advantage there is for me.

ECMAScript 5 may be (negligably) faster, but the main benefit you get is in using/preparing to use a language that is more sane and developed and is the future

Message 6 of 7
, Nov 3, 2010

0 Attachment

ECMAScript 5 may be (negligably) faster, but the main benefit you get is in
using/preparing to use a language that is more sane and developed and is the
future of JavaScript. I'm sure you'll find lots of links as to the
advantages if you google it. It shouldn't make your code slower.

>
>
> Yes, I understand. But why should I? If I always drive the speed limit, why
> should I put a speed regulator on my car? There may very well be a reason, I
> just want to know what advantage there is for me.
>
>
> --- In jslint_com@yahoogroups.com <jslint_com%40yahoogroups.com>, "Rob
> Richardson" <erobrich@...> wrote:
> >
> > "use strict" identifies you're opting into the ECMAScript 5 mode of the
> same
> > name.
> >
> > Rob
>
>
>

[Non-text portions of this message have been removed]

Joshua Bell

... This post has a reasonable summary: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ In browsers today, the use strict directive does nothing.

> Yes, I understand. But why should I? If I always drive the speed limit,
> why should I put a speed regulator on my car? There may very well be a
> reason, I just want to know what advantage there is for me.

In future browsers, the use strict directive will cause subtly different
behavior in parts of ECMAScript you probably shouldn't be using anyway.
JSLint attempts to warn you about some of those. Tracking es-discuss, it
does not appear that there are any fully conforming ES5 implementations, so
it is not possible to verify that your scripts are, in fact, strict-mode
compliant. (That is, that they behave as you would expect.)

IMHO, unless you are aware of the differences to the language that strict
mode introduces, the safest thing to do at this point is to ask JSLint (or
similar tools) to look for strict mode violations, but not deploy with a
"use strict" directive.

-- Josh

[Non-text portions of this message have been removed]

Your message has been successfully submitted and would be delivered to recipients shortly.