为什么使用"use strict"可以节约你的时间


发布者 ourjs  发布时间 2014-02-07
关键字 心得体会 
"use strict"是JavaScript中一个非常好的特性,而且非常容易使用。

使用方法


// file.js
"use strict"
function doStuff(){
    // use strict is enabled here!
}
这样佻的file.js都会应用上"use strict"模式。
如果你仅想在一个函数中使用:

// file.js
function a(){
"use strict";
// use strict is enabled in this context
function nestedFunction(){
// and here too
}
}

好处

检查对象中的重复键

var zombie = {
eyeLeft : 0,
eyeRight: 1,
// ... a lot of keys ...
eyeLeft : 1
}

这段代码会抛出一个错误因为 eyeLeft 出现了两次。这比你用眼睛去找错误要快多了。

未声明变量

plane = 5;
你现在已经知道忘记在这个变量前面加var了。不过如果你不知道,调试起来是非常痛苦的,因为这个变量是声明在全局上下文(global context)中的,而且可能被其他地方改掉。想象一下,如果你声明了一个全局的 i, 在嵌套循环中可能会引起混乱。

重复的参数

function run(fromWhom, fromWhom){}
注意fromWho出现了两次,因此会抛出一个错误。

限制函数中的arguments

var run = function(fromWhom){
arguments[0] = 'alien';
alert(fromWhom);
}
run('zombie');
// alert: 'alien';
现在你可以使用"use strict"

var run = function(fromWhom){
"use strict";
arguments[0] = 'alien';
alert(fromWhom);
}
run('zombie');
// alert: 'zombie';
arguments[0] = 'alien' 改变了参数fromWhom,use strict 又节约了你的时间。





回复 (65)
  • #
  • #1 黎旦危 2015-03-17 09:54:14
    • 列表















    ##

  • #2 黎旦危 2015-03-17 09:54:51

    @黎旦危 #0

    • `
    • `
    • `
    • -
      -

    • 标题

      #

    --

    `

    `

    `

  • #3 邢民归 2015-03-25 05:27:21
    在这里输入代码asd
    
  • #4 岑丘久 2015-05-18 08:32:39

  • #5 武丈令 2015-06-04 15:27:07
    在这里输入代码
    
  • #6 柯尸师 2015-07-19 10:30:29

    是的范德萨

  • #7 我操 2015-07-25 09:27:21
    use strict
    
  • #8 金欢芒 2015-08-18 10:05:13
    use strict
    
  • #9 alert(1) 2015-08-21 09:57:55

    xxxx

  • #10 Sigma 2015-09-15 07:52:14

    哪里体现了”节约时间“呢?

  • #11 施厅广 2015-09-16 01:03:29

    @Sigma #9

    让小白避免语法错误吧,不过我不喜欢这个东西,限制很多,不够灵活,还降低了VM的性能

  • #12 dennis2 2015-09-16 02:57:10
    user strict;
    (function(){alert(5)})();
    
  • #13 简丢召 2015-10-21 00:38:05
    rrrrerwrwrw3ddwedwedw`dwedwedwe![插入图片描述][1]wdwedwedwedwe`
    

    1. `

    标题

    `

    ##

  • #14 涂传冰 2016-03-22 06:16:12

  • #15 队长舰 2016-04-15 07:46:39

    @施厅广 #10

    这明明提高了性能

  • #16 冯亏阵 2016-05-07 04:25:22

    ssssssssss**加粗sss文本**ssssssss添加链接

  • #17 江节寻 2016-05-26 09:30:22

    用严格模式好呢,还是不用严格模式好呢!

  • #18 江节寻 2016-05-26 09:31:15

    主要是现在已经习惯非严格模式了,比如this在函数里面指向window

  • #19 尤火汤 2016-10-12 06:29:18

    @dennis2 #11

    你说了个几把

  • #20 谢成仿 2016-10-20 06:24:06

    @武丈令 #4

    在这里输入代码
    
  • #21 巫扣团 2016-12-07 20:07:16

    .

  • #22 任好吗 2017-01-12 18:01:23

    wtf

  • #23 文大凶 2017-05-12 09:40:31

    user strict; (function(){alert(5)})();

  • #24 易民二 2017-05-13 13:06:16

    sadflka asdfsdf

  • #25 余句爪 2017-05-16 08:36:55

    @谢成仿 #19

  • #26 蔡仰妈 2017-06-29 08:06:01

    66666

  • #27 洪个奸 2017-06-29 08:06:33

    333333

  • #28 苏且兰 2017-06-30 09:13:29

    ssss

  • #29 苏且兰 2017-06-30 09:14:05
    在这里输入代码
    
  • #30 卢叹毕 2017-07-22 09:14:27

    console.error(this,this)

  • #31 陈皮丘 2017-08-08 03:02:04
    在这里输入代码阿萨德阿萨德撒旦按时打`萨达 萨达按时打`
    
  • #32 周辽市 2017-08-09 06:45:51

    @陈皮丘 #30

    111

  • #33 周辽市 2017-08-09 06:46:28

    @卢叹毕 #29

    alert('xx');

  • #34 我要吃奶子 2017-08-13 06:52:30

    &……¥&¥……

  • #35 伍凡禾 2017-09-04 10:17:14

    awewae

  • #36 常机申 2017-09-26 07:56:10
    alert(1)
  • #37 史夹功 2017-10-06 07:24:59
    在这里输入代码
    
  • #38 邓吗讨 2017-10-11 01:52:06

    erwe在这里输入代码

  • #39 潘勾亿 2017-10-18 11:40:43

    恶趣味群二群二

  • #40 余厂用 2017-11-08 02:02:14

  • #41 褚击计 2017-11-08 08:56:53
    在这里输入代码
    
  • #42 褚击计 2017-11-08 08:57:49

    引用'<a>sss</a>sss`

  • #43 吴合后 2017-11-11 10:25:15

    sdadasdasdasdasda

  • #44 邬龙污 2017-11-29 03:25:05

    142054

  • #45 钱月仿 2017-12-07 03:28:16

    还可以这样吗

    dwa

  • #46 丘庆扛 2017-12-15 05:25:40

    "use strict"

  • #47 阿门 2017-12-20 10:23:15

    @金欢芒 #7 11111

  • #48 梅死由 2018-01-02 01:02:43
    在这里输入代码
    
  • #49 葛勿吗 2018-01-04 12:45:34
    引用湿答答湿答答
    

    sdassdasd sadad

    inmsdsdsdsdkkf
    

    dfkldsfskdfsdfl

  • #50 史市伪 2018-01-16 01:30:57
    alert("111111111")
  • #51 邬似页 2018-02-21 15:28:58

    加粗文本

  • #52 朱团奶 2018-02-22 06:38:39

    这里是代码么。 public class BundleConfig { // 有关捆绑的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js"));

            // 使用要用于开发和学习的 Modernizr 的开发版本。然后,当你做好
            // 生产准备就绪,请使用 https://modernizr.com 上的生成工具仅选择所需的测试。
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));
    
            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/respond.js"));
    
            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }
    }
    
  • #53 倪庄专 2018-02-24 08:12:32
    在这里输入代码sdfasdfdsafadsfadsfdasfasdfasdfasdfadsffdsafdsfdsaffffffffffffffffffffffffffffffffffffffffffffffffffffffff111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    

    fsadfsdfasdffasfasdfsdaf

  • #54 岳今边 2018-03-12 05:56:44

    1111

  • #55 丘气示 2018-03-19 10:01:29

    @褚击计 #41

    在这里输入代码

  • #56 丘气示 2018-03-19 10:02:03

    ![

    1. 插入图片描述

    ]1


    --

  • #57 严负又 2018-03-30 07:30:37

    @我操 #6

    出现在 v

  • #58 严负又 2018-03-30 07:31:07

    console.log("hello word")

  • #59 严负又 2018-03-30 07:31:39
  • #60 乐片长 2018-04-19 07:33:56

    alert(1)

  • #61 乐片长 2018-04-19 07:34:31

    alert(1)

  • #62 乐片长 2018-04-19 07:35:47

    alert(1)

  • #63 王军托 2018-04-19 08:25:34

    import functools def showValue(*args,**kwargs): print(args) print(kwargs)

    p = showValue

    p(1,2,3)

    p = functools.partial(showValue,1,2,3) p() #(1, 2, 3) {}

    p(id=123) #(1,2,3) {'id':123}

  • #64 柯约多 2018-04-19 08:26:16
    import functools
    

    def showValue(*args,**kwargs): print(args) print(kwargs)

    p = showValue

    p(1,2,3)

    p = functools.partial(showValue,1,2,3) p() #(1, 2, 3) {}

    p(id=123) #(1,2,3) {'id':123}

  • #65 666 2018-05-07 10:34:56
微信扫码 立即评论