js的严格模式

    '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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值