我是靠谱客的博主 和谐嚓茶,最近开发中收集的这篇文章主要介绍JS的严格模式和标准模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

严格模式的好处:

规避了代码中的一些不严谨,不规范的用法,提高了编译器的运行效率,为后续版本做铺垫

用法:在当前环境顶部(全局,局部环境)加上两个单词:“use strict”
"use strict"        //添加严格模式

function foo() {
"use static"        //添加严格模式
    }

严格模式下,不能使用为未声明的变量:

    "use strict"
    x = 123;
    console.log(x); // x is not defined
	// 非严格模式

   x=123;     
   console.log(x)     //输出:123

严格模式下,函数不允许参数名相同

//非严格模式
function a(a, a) {
    console.log(a, a)
}
a(12, 34) // 34,34
//严格模式
"use strict"

function a(a, a) {
    console.log(a, a)
}
a(12, 34) // Duplicate parameter name not allowed in this context

严格模式不允许使用八进制

"use strict"
var num = 017;  
console.log(num)    // Octal literals are not allowed in strict mode.

严格模式下,变量名不能使用 “eval” 字符串

"use strict"
var eval = 1234;
console.log(eval);  // Unexpected eval or arguments in strict mode
// 非严格模式
var eval = 1234;
console.log(eval);  //1234

严格模式下,变量名不能使用 “arguments” 字符串

// 严格模式
"use strict"
var arguments = 1234;
console.log(arguments);     // Unexpected eval or arguments in strict mode
// 非严格模式
var arguments = 1234;
console.log(arguments);     // 1234

严格模式下,不允许使用with语句

"use strict"
var person = {
    name: "小明",
    age: 20,
};
with(person) {
    console.log(name, age); //Strict mode code may not include a with statement
}
//非严格模式
var person = {
    name: "小明",
    age: 20,
};
with(person) {
    console.log(name, age); // 小明 20
}

arguments不追踪参数变化

"use strict"

function foo(x) {
    x = 1;
    console.log(arguments[0]);      // 10
}
foo(10);        
// 非严格模式
function foo(x) {
    x = 1;
    console.log(arguments[0]);  //1
}
foo(10);

不能用delete删除一个变量

 "use strtic"
 var a = 10;
 delete a;
 console.log(a); // 不能使用delete删除一个变量 如果不使用var则可以删除
 // 严格模式下不带var 和 let 不能声明变量

函数this问题

"use strict"
  function foo() {
            console.log(this); //undefined
        }
        foo(); //不知道是谁调用foo
        window.foo();

设立eval作用域

      "use strict"
      eval("var a = 10;console.log(a)");
      console.log(a); //a 是访问不到

最后

以上就是和谐嚓茶为你收集整理的JS的严格模式和标准模式的全部内容,希望文章能够帮你解决JS的严格模式和标准模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部