写js时候,需要用到严格模式吗

JavaScript09

写js时候,需要用到严格模式吗,第1张

看情况呗,但我推荐要严格模式,javascript当初就是太不严谨了,给初学者养成坏的代码编写习惯提供了土壤,虽然严格模式会失去js很多原有的灵活性啊,但是有利于js正式化的,想让自己少点跳坑,那就对自己严谨点吧。

最重要的是没有var的变量定义出错,这样子不会因为忘了打var而污染全局环境

严格模式是一种将更好的错误检查引入代码中的方法。 在使用严格模式时,无法使用隐式声明的变量、将值赋给只读属性或将属性添加到不可扩展的对象等1、 严格模式的目的 1) 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为2)消除代码运行的一些不安全之处,保证代码运行的安全3) 提高编译器效率,增加运行速度4) 为未来新版本的Javascript做好铺垫 2、声明严格模式可以通过在文件、程序或函数的开头添加 "use strict"来声明严格模式。 此类声明称作“指令序言”。 严格模式声明的范围取决于其上下文。 如果在全局上下文(函数的范围之外)中声明严格模式,则程序中的所有代码都处于严格模式。如果在函数中声明严格模式,则函数中的所有代码都处于严格模式。 例如,在以下示例中,所有代码都处于严格模式,并且函数外部的变量声明会导致出现语法错误“严格模式下未定义变量”<pre t="code" l="js">"use strict"

function testFunction(){

var testvar = 4

return testvar

}

// This causes a syntax error.

testvar = 5在以下示例中,仅 testFunction 中的代码处于严格模式。 函数外部的变量声明不会导致语法错误,但函数内部的声明会导致语法错误<pre t="code" l="js">function testFunction(){

"use strict"

// This causes a syntax error.

testvar = 4

return testvar

}

testvar = 5

"use strict"是一个字符串字面量,用来指定代码运行于严格模式下。在严格模式下远行代码有很多限制,也有很多好处,比如:变量在使用前必须声明,这可以防止无意中使用了未声明的变量;函数中的this不再是引用全局对象(window),而是undefined,这可以消除以前代码中的一些古怪行为,代码会变得更严谨(尤其是当函数是作为构造函数时,获得的好处更明显);。。。等等。