首页 > 其他 > 详细

严格模式

时间:2019-11-01 15:07:04      阅读:68      评论:0      收藏:0      [点我收藏+]

严格模式在严格的条件下运行JS代码,在IE10以上版本的浏览器中才会被支持,就版本浏览器会被忽略.

1.为脚本开启严格模式

需要在所有语句之前放一个特定语句"use strict";(或者‘use strict‘;).

<script>
       ‘use strict‘;
       // 下面的js 代码就会按照严格模式执行代码

</script>
<script>
    (function(){
          ‘use strict‘;
var num = 10;
function fn(){} })(); </script>

  

2.严格模式里的变化

2.1.变量赋值之前必须先声明
之前我们这样写并不会报错

str = ‘严格模式‘;//默认全局变量
console.log(str);//‘严格模式‘

  但是严格模式这样是不允许的,必须先声明.

‘use strict‘;
 var str = ‘严格模式‘;
console.log(str);

其中涉及到的this指向问题,以前在全局作用域函数中的this指向window对象,严格模式下全局作用域中函数中的是this是underfined.

以前构造函数不加new,也能直接调用函数,严格模式下this指向undefined,除非new一下改变指向.

定时器中的this也是指向window的,严格模式下同样还是指向window.事件,对象还是指向调用者.

2.2已经声明的变量不能删除

比如delete x;就是不允许的.

2.3参数不能重名

非严格模式下可以覆盖,但严格模式下会报错

a=1;
a=2;
function fn(a,a){
 console.log(a+a);
}
fn(a+a);//4;严格模式下报错

2.4不能在非函数的代码块内声明函数

非函数代码块里指的是if条件语句,for循环语句等,在函数中声明函数是被允许的.

总的来说,因为IE的EdgeHTML,到18年底迁移的Choromium,webkit,firefox,Opera,blink在国内的版本较多,因此考虑兼容的问题,严格模式在开发中并不是必要充分的条件.

严格模式

原文:https://www.cnblogs.com/omiturix/p/11774874.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!