【JavaScript】15_debug,立即执行函数 与 严格模式
14、debug
<script>
//debugger // 在代码中打了一个断点
console.log(a) // 2
var a = 1
console.log(a) // 1
function a() {
alert(2)
}
console.log(a) // 1
var a = 3
console.log(a) // 3
var a = function () {
alert(4)
}
console.log(a) // 4
var a
console.log(a) // 4
</script>
15、立即执行函数
立即执行函数(IIFE)
- 立即是一个匿名的函数,并它只会调用一次
- 可以利用IIFE来创建一个一次性的函数作用域,避免变量冲突的问题
<script>
/*
在开发中应该尽量减少直接在全局作用域中编写代码!
所以我们的代码要尽量编写的局部作用域
如果使用let声明的变量,可以使用{}来创建块作用域
*/
{
let a = 10
}
{
let a = 20
}
// function fn(){
// var a = 10
// }
// fn()
// function fn2(){
// var a = 20
// }
// fn2()
//希望可以创建一个只执行一次的匿名函数
/*
立即执行函数(IIFE)
- 立即是一个匿名的函数,并它只会调用一次
- 可以利用IIFE来创建一个一次性的函数作用域,避免变量冲突的问题
*/
(function(){
let a = 10
console.log(111)
}());
(function(){
let a = 20
console.log(222)
}())
</script>
18、严格模式
JS运行代码的模式有两种:
正常模式
- 默认情况下代码都运行在正常模式中,
在正常模式,语法检查并不严格
它的原则是:能不报错的地方尽量不报错 - 这种处理方式导致代码的运行性能较差
严格模式
-
在严格模式下,语法检查变得严格 --------> “use strict”
1.禁止一些语法
2.更容易报错
3.提升了性能 -
在开发中,应该尽量使用严格模式,
这样可以将一些隐藏的问题消灭在萌芽阶段,
同时也能提升代码的运行性能
<script>
"use strict" // 全局的严格模式
let a = 10
// console.log(a)
function fn(){
"use strict" // 函数的严格的模式
}
</script>