网站开发的目的相关书籍,手机如何自动备份wordpress,西安比较好的网络公司,wordpress 最简洁主题1.块级作用域
JS 中作用域有#xff1a;全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称 ES6)中新增了块级作用域。块作用域由 { } 包括#xff0c;if 语句和 for 语句里面的{ }也属于块作用域。
2.变量提升
如果变量声明在函数里面#xff0c;则将变量声…1.块级作用域
JS 中作用域有全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称 ES6)中新增了块级作用域。块作用域由 { } 包括if 语句和 for 语句里面的{ }也属于块作用域。
2.变量提升
如果变量声明在函数里面则将变量声明提升到函数的开头如果变量声明是一个全局变量则将变量声明提升到全局作用域的开头
解析 script type text/javascript
{var a 1;console.log(a); // 1
}
console.log(a); // 1
// 可见通过var定义的变量可以跨块作用域访问到。(function A() {var b 2;console.log(b); // 2
})();
// console.log(b); // 报错
// 可见通过var定义的变量不能跨函数作用域访问到if (true) {var c 3;
}
console.log(c); // 3
for (var i 0; i 4; i) {var d 5;
};
console.log(i); // 4 (循环结束i已经是4所以此处i为4)
console.log(d); // 5
// if语句和for语句中用var定义的变量可以在外面访问到
// 可见if语句和for语句属于块作用域不属于函数作用域。{var a 1;let b 2;const c 3;{console.log(a); // 1 子作用域可以访问到父作用域的变量console.log(b); // 2 子作用域可以访问到父作用域的变量console.log(c); // 3 子作用域可以访问到父作用域的变量var aa 11;let bb 22;const cc 33;}console.log(aa); // 11 // 可以跨块访问到子 块作用域 的变量console.log(bb); // 报错 bb is not definedconsole.log(cc); // 报错 cc is not defined
}
/script 拓展
var、let、const 的区别
var 定义的变量没有块的概念可以跨块访问, 不能跨函数访问。let 定义的变量只能在块作用域里访问不能跨块访问也不能跨函数访问。const 用来定义常量使用时必须初始化(即必须赋值)只能在块作用域里访问而且不能修改。同一个变量只能使用一种方式声明不然会报错 script type text/javascript
// 块作用域
{var a 1;let b 2;const c 3;// c 4; // 报错// let a a; // 报错 注是上面 var a 1; 那行报错// var b b; // 报错本行报错// const a a1; // 报错 注是上面 var a 1; 那行报错// let c c; // 报错本行报错var aa;let bb;// const cc; // 报错console.log(a); // 1console.log(b); // 2console.log(c); // 3console.log(aa); // undefinedconsole.log(bb); // undefined
}
console.log(a); // 1
// console.log(b); // 报错
// console.log(c); // 报错// 函数作用域
(function A() {var d 5;let e 6;const f 7;console.log(d); // 5console.log(e); // 6 (在同一个{ }中,也属于同一个块可以正常访问到)console.log(f); // 7 (在同一个{ }中,也属于同一个块可以正常访问到)
})();
// console.log(d); // 报错
// console.log(e); // 报错
// console.log(f); // 报错
/script