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


发布者 ourjs  发布时间 1391817407000
关键字 心得体会 
"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 黎旦危 1426586054980
    • 列表















    ##

  • #2 黎旦危 1426586091634

    @黎旦危 #0

    • `
    • `
    • `
    • -
      -

    • 标题

      #

    --

    `

    `

    `

  • #3 邢民归 1427261241353
    在这里输入代码asd
    
  • #4 岑丘久 1431937959108

  • #5 武丈令 1433431627332
    在这里输入代码
    
  • #6 柯尸师 1437301829659

    是的范德萨

  • #7 我操 1437816441137
    use strict
    
  • #8 金欢芒 1439892313758
    use strict
    
  • #9 alert(1) 1440151075916

    xxxx

  • #10 Sigma 1442303534359

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

  • #11 施厅广 1442365409852

    @Sigma #9

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

  • #12 dennis2 1442372230353
    user strict;
    (function(){alert(5)})();
    
  • #13 简丢召 1445387885064
    rrrrerwrwrw3ddwedwedw`dwedwedwe![插入图片描述][1]wdwedwedwedwe`
    

    1. `

    标题

    `

    ##

  • #14 涂传冰 1458627372221

  • #15 队长舰 1460706399441

    @施厅广 #10

    这明明提高了性能

  • #16 冯亏阵 1462595122032

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

  • #17 江节寻 1464255022211

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

  • #18 江节寻 1464255075751

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

  • #19 尤火汤 1476253758491

    @dennis2 #11

    你说了个几把

  • #20 谢成仿 1476944646181

    @武丈令 #4

    在这里输入代码
    
  • #21 巫扣团 1481141236273

    .

  • #22 任好吗 1484244083754

    wtf

  • #23 文大凶 1494582031129

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

  • #24 易民二 1494680776623

    sadflka asdfsdf

  • #25 余句爪 1494923815739

    @谢成仿 #19

  • #26 蔡仰妈 1498723561349

    66666

  • #27 洪个奸 1498723593076

    333333

  • #28 苏且兰 1498814009002

    ssss

  • #29 苏且兰 1498814045210
    在这里输入代码
    
  • #30 卢叹毕 1500714867670

    console.error(this,this)

  • #31 陈皮丘 1502161324373
    在这里输入代码阿萨德阿萨德撒旦按时打`萨达 萨达按时打`
    
  • #32 周辽市 1502261151586

    @陈皮丘 #30

    111

  • #33 周辽市 1502261188200

    @卢叹毕 #29

    alert('xx');

  • #34 我要吃奶子 1502607150291

    &……¥&¥……

  • #35 伍凡禾 1504520234846

    awewae

  • #36 常机申 1506412570224
    alert(1)
  • #37 史夹功 1507274699150
    在这里输入代码
    
  • #38 邓吗讨 1507686726888

    erwe在这里输入代码

  • #39 潘勾亿 1508326843858

    恶趣味群二群二

  • #40 余厂用 1510106534416

  • #41 褚击计 1510131413957
    在这里输入代码
    
  • #42 褚击计 1510131469594

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

  • #43 吴合后 1510395915787

    sdadasdasdasdasda

  • #44 邬龙污 1511925905394

    142054

  • #45 钱月仿 1512617296226

    还可以这样吗

    dwa

  • #46 丘庆扛 1513315540211

    "use strict"

  • #47 阿门 1513765395453

    @金欢芒 #7 11111

  • #48 梅死由 1514854963775
    在这里输入代码
    
  • #49 葛勿吗 1515069934069
    引用湿答答湿答答
    

    sdassdasd sadad

    inmsdsdsdsdkkf
    

    dfkldsfskdfsdfl

  • #50 史市伪 1516066257554
    alert("111111111")
  • #51 邬似页 1519226938268

    加粗文本

  • #52 朱团奶 1519281519201

    这里是代码么。 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 倪庄专 1519459952713
    在这里输入代码sdfasdfdsafadsfadsfdasfasdfasdfasdfadsffdsafdsfdsaffffffffffffffffffffffffffffffffffffffffffffffffffffffff111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    

    fsadfsdfasdffasfasdfsdaf

  • #54 岳今边 1520834204153

    1111

  • #55 丘气示 1521453689768

    @褚击计 #41

    在这里输入代码

  • #56 丘气示 1521453723524

    ![

    1. 插入图片描述

    ]1


    --

  • #57 严负又 1522395037796

    @我操 #6

    出现在 v

  • #58 严负又 1522395067960

    console.log("hello word")

  • #59 严负又 1522395099148
  • #60 乐片长 1524123236756

    alert(1)

  • #61 乐片长 1524123271305

    alert(1)

  • #62 乐片长 1524123347724

    alert(1)

  • #63 王军托 1524126334917

    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 柯约多 1524126376411
    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 1525689296328
微信扫码 立即评论