"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
}
}

优点1

检查对象中的重复键

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

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

优点2 未声明变量 重复参数

plane = 5;

function run(fromWhom, fromWhom){}

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

优点3 限制函数中的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 又节约了你的时间。

js 使用 "use strict"的更多相关文章

  1. [JS] Topic - why "strict mode" here

    Ref: Javascript 严格模式详解 使得Javascript在更严格的条件下运行: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全 ...

  2. js:"use strict"; 严格模式

    http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

  3. JS or C#?不存在的脚本之争

    前言: 又来到了周末,小匹夫也终于有了喘口气写写博客的时间和精力.话说周五的下午,小匹夫偶然间晃了一眼蛮牛的QQ群,又看到了一个Unity3D开发中老生长谈的问题,“我的开发语言究竟是选择JavaSc ...

  4. 最近写了一个红包雨的小功能,但感觉自己的js还有很多地方可以提高,望大神们可以帮忙指点一二

    js部分 'use strict'; function RedEnvelope(options){ if(this === window){ return new RedEnvelope(option ...

  5. node.js和socket.io纯js实现的即时通讯实例分享

    在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这 ...

  6. Adapting to views using css or js

    using css @media screen and (-ms-view-state: fullscreen-landscape) { } @media screen and (-ms-view-s ...

  7. 开箱即用 - Grunt合并和压缩 js,css 文件

    js,css 文件合并与压缩 Grunt 是前端自动化构建工具,类似webpack. 它究竟有多强悍,请看它的 介绍. 这里只演示如何用它的皮毛功能:文件合并与压缩. 首先说下js,css 合并与压缩 ...

  8. Node.js 基础介绍(一)

    Node.js 学习笔记一) 简单介绍--名称 Node.js,平时听到有好几种叫法,node .Node.js.nodejs ,但是比较正式的称呼还是"Node.js",由于它是 ...

  9. Node.js代码模块化

    js语言发展到现在逐渐的像后端语言来,学习了一些后端语言的特性,这里主要讲述的是js语言的模块化管理 首先新建一个js文件 'use strict'; var s = 'Hello'; functio ...

随机推荐

  1. python 之实现断点下载与下载进度条

    一.效果图 二.进度条代码 __author__ = 'Yang' import os import time from threading import Thread '''下载进度条''' cla ...

  2. ICEM-缺口圆柱

    原视频下载地址:https://pan.baidu.com/s/1bpahxd9 密码: bpp7

  3. intellij ide 集成cmder

    1.环境变量配置: https://github.com/cmderdev/cmder/wiki/Setting-up-Environment-Variables 2.intellijide的配置:h ...

  4. 为什么Map桶中个数超过8才转为红黑树

    这是笔者一个好友面试阿里时,被问及的一个问题,应该不少人看到这个问题都会一面懵逼.因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作.笔者第一反应 ...

  5. 001 okhttp3的POST使用

    继续使用上面的项目 1.被调用的项目 package com.jun.web2forokhttp.okhttp; import com.jun.web2forokhttp.bean.HttpDomai ...

  6. tf.gather和tf.gather_nd、tf.cast、tf.greater

    https://blog.csdn.net/Cyiano/article/details/76087747

  7. IDEA 如何搭建maven 安装、下载、配置(图文)

    1.下载 maven 压缩包 输入网址 www.apache.org 会看到以下界面 住下划看到以下界面 然后看到这个界面 选择下载这个版本 下载后 解压 maven 压缩包 (文件路径不建议用有中文 ...

  8. [LeetCode] 290. Word Pattern 单词模式

    Given a pattern and a string str, find if str follows the same pattern. Here follow means a full mat ...

  9. Java之整数运算

    Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号.四则运算规则和初等数学一致.例如: public class Main { public static void main(String[ ...

  10. android基础---->ListView的使用

    简单说明 ListView在android程序中比较常用,在此做一下简单的总结 内容:自定义ListView, 自定义Adapter,ListView滚动事件的应用! 项目结构如下图