刚刚学习xampp,也不知道理解的对不对,如果有错误,欢迎指正~
先简单说下,ECMAScript和JavaScript的关系,ECMAScript的历史不知道的自己百度吧。ECMAScript和JavaScript的关系是,前者是后者的规格(标准),后者是前者的一种实现。
基本用法
描述
let命令用来声明变量,它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
语法
let var1 [= varlue1] [, var2 [= value2]] [, …, varN [= varlueN]];
参数
var1,var2,…,varN 为变量名,可以是任意合法的标识符。
value1,value2,…,valueN 为变量的初始值。可以是任意合法的表达式。
let与var比较
let与var不同点在于作用域。
var关键词的作用域是最近的函数作用域,在函数体外部就是全局作用域;
let关键词的作用域是最接近的块作用域,在任何块以外就是全局作用域。
1、全局(Global)
当在函数体外时,它们是平等的。
let me = ‘666’; //globally scoped
var you= ’250’; //globally scoped
2、函数(Function)
当在函数体内使用时,它们是平等的。
function ingWithinEstablishedParameters() {
let terOfRecommendation = ‘awesome worker!’; //function block scoped
var sityCheerleading = ‘go!’; //function block scoped
};
3、块(Block)
下面就是很明显的区别,let只在for循环中,而var却是在整个函数都可见。
function allyIlliterate() {
//tuce is *not* visible out here
for( let tuce = 0; tuce < 5; tuce++ ) {
//tuce is only visible in here (and in the for() parentheses)
//and there is a separate tuce variable for each iteration of the loop
}
//tuce is *not* visible out here
}
function byE40() {
//nish *is* visible out here
for( var nish = 0; nish < 5; nish++ ) {
//nish is visible to the whole function
}
//nish *is* visible out here
}
4、重声明(Redeclaration)
var允许在同一范围内重新声明相同的变量,let不能。
‘use strict’;
let me = ‘foo’;
let me = ‘bar’; // SyntaxError: Identifier ‘me’ has already been declared
‘use strict’;
var me = ‘foo’;
var me = ‘bar’; // No problem, `me` is replaced.
5、变量提升
var有变量提升功能,let没有。
function func() {
// val先使用后声明,不报错
alert(val) // undefined
var val;
}
function func() {
// let先使用后声明,报语法错
alert(val)
let val;
}
转载请注明:XAMPP中文组官网 » xampp 入门之 let 命令