JavaScript 作用域

作用域

作用域是代码的影响范围,函数的内部有属于自己的作用域。

var n = 1

console.log(n) // 1

;(function() {
 n = 2
})()

console.log(n) // 1 | 没有被函数影响

全局变量

所有作用域下都能共享都变量。

/*
var n = 1 // 局部变量
n = 1 // 全局变量 

浏览器中的 JavaScript,当变量没有指定前缀就是全局变量 
因为,n = 1 和 window.n = 1 相等,window 在浏览器中是全局对象
而 Node.js 全局变量和一般语言一样,用的是 global 语法
*/

n = 1

console.log(n) // 1

;(function() {
 n = 2
})()

console.log(n) // 2 | 成功改变了 n 的值


let

ES6 新增的变量关键词,和 var 最大的区别是 let 具备块级作用域

// 每一个 {} 就是一段代码块

// let
for (let i=0; i<5; i++){
 // ...
}

console.log(i) // 读取不到,而如果使用的是 var 这里可以就读取得到

const

ES6 新增的常量关键字,和 let 一样具备块级作用域。

const page = 10

page = 5 // 常量,定义量就不能修改,否则报错

strict

严格模式

'use strict' // 文件开头声明,启用严格模式

/*
 严格模式会对不规范的代码进行报错,建议开启,养成代码规范的好习惯!
*/
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程