严格模式
ES5有两种运行模式, 一种为正常模式(混杂模式), 另一种运行模式: 严格模式(strict mode), 这种模式使得JavaScript在更严格的语法条件下运行
1.目的: 消除js语法的一些不合理,不严谨之处,减少一些怪异行为,消除代码运行的一些不安全之处, 为代码的安全运行保驾护航, 为未来的新版本做好铺垫
2.使用: 在全局或函数的第一行定义"use strict"
3.作用: 必须使用var声明变量,
禁止自定义函数的this只想window,
创建eval作用域,
对象不能有重名的属性
'use strict'; //在全局或函数内第一行书写
//1.变量必须使用var 定义 否则报错
str="xxx";
//2.函数内的this指向不再是window
function Person(name,age) {
console.log(this);//undefined
this.name=name;//相当于设置undefined.name =name 报错
this.age=age;
}
//3.让eval有自己的作用域
var str =123;
eval('var str=456;alert(str)');//456
alert(str);//123
//4.对象不能用重名属性
var obj ={
username:'kobe',
username:'zs'
}
console.log(obj);//运行时没有报错,不过编辑器内有提示 最好别这么写就是了
//5.不能使用arguments.callee
function factorial(num){
if(num<=1) renturn 1;