Js中严格模式和非严格模式的区别
2018-01-20 21:40
351 查看
严格模式和非严格模式的区别
//f1.js 'use strice'; //整个js文件都是严格模式下执行的 var n = 1; var foo = function(){...}; //...
var n = 1; var foo = function(){ 'use strict'; //在foo函数内是严格模式 //some code... }
严格模式下, delete运算符后跟随非法标识符(即delete 不存在的标识符),会抛出语法错误; 非严格模式下,会静默失败并返回false
严格模式中,对象直接量中定义同名属性会抛出语法错误; 非严格模式不会报错
严格模式中,函数形参存在同名的,抛出错误; 非严格模式不会
严格模式不允许八进制整数直接量(如:023)
严格模式中,arguments对象是传入函数内实参列表的静态副本;非严格模式下,arguments对象里的元素和对应的实参是指向同一个值的引用
严格模式中 eval和arguments当做关键字,它们不能被赋值和用作变量声明
严格模式会限制对调用栈的检测能力,访问arguments.callee.caller会抛出异常
严格模式 变量必须先声明,直接给变量赋值,不会隐式创建全局变量,不能用with,
严格模式中 call apply传入null undefined保持原样不被转换为window
相关文章推荐
- const、let、var区别+js严格模式
- js中严格模式与普通模式区别
- Js中严格模式和非严格模式的区别
- JS严格模式和非严格模式的区别
- js严格模式“use strict”
- JS的解析顺序和作用域(严格模式)
- 什么是js严格模式?
- in_array严格模式和普通模式的区别
- js严格模式注意点
- JS之理解组合继承模式和寄生式组合继承的区别
- js严格模式——arguments变为参数的静态副本
- js中的严格模式use strict
- js严格模式
- -_-#【Better JS Code】严格模式
- js 严格模式
- js 'use strice' 严格模式的作用范围
- JS的解析顺序和作用域(严格模式)
- 严格模式和非严格模式之间的区别
- js 正则表达式中/i,/g,/ig,/gi,/m(模式修正符)的区别和含义
- JS的解析顺序和作用域(严格模式)