0
点赞
收藏
分享

微信扫一扫

js的严格模式

哈哈镜6567 2022-03-21 阅读 211
javascript

    'use strict'  //全局中开启严格模式

//1、严格模式不允许省略var定义变量

a = 10

console.log(a);  //报错

//全局开启的严格模式,可以约束到全局代码以及局部代码

//局部开启的严格模式,只能约束局部代码

function fn() {

    a = 20

}

fn()

console.log(a);  //报错


 

//2.不允许函数的形参同名

function fn(a, a) {

    'use strict' //在局部开启严格模式,只能约束局部代码

    // 形参就相当于在局部内定义了变量

    // var a = 1        var a = 2

    console.log(a);

    console.log(a+a);

}

fn(1,2)  //报错

//3.不允许普通函数中的this关键字代表window窗口

// this在js中是一个关键字 - 代表一个值

// 在js中算是一个难点,this会在不同的作用域中或不同的场景中,代表的含义是不一样的

// 5个this的使用场景:

// ①可以在全局使用 - 代表浏览器窗口window

console.log(this);  // 开启严格模式也代表window

// ②普通函数中可以使用 - 代表浏览器窗口window

function fn(){

    console.log(this)

}

fn()  //开启严格模式为undefined

// ③自调用函数可以使用 - 代表浏览器窗口window

(function (){

    console.log(this)

})()  //开启严格模式,会报错

// ④在事件处理程序的函数中可以使用 - 代表当前事件触发的事件源

<!-- <button id="btn">按钮</button> -->

btn.onclick = function(){

    console.log(this)

}  //是否开启严格模式都是当前事件源

// ⑤.在对象的方法可以使用 - 代表当前方法所在的对象

var obj = {

    name:'张三',

    age:12,

    eat:function(){

        console.log(this)

    }

}

console.log(obj)  //输出对象

obj.eat()  //是否开启严格模式都是输出对象obj

举报

相关推荐

0 条评论