[ES6] 04. The let keyword -- 2 Fiald case

Fiald case 1: let can work in it‘s block

{
    let a = 10;
    var b = 1;
}

a // ReferenceError: a is not defined.
b //1

Case 2: Let has no "Hosting" Problem

function do_something() {
  console.log(foo); // ReferenceError
  let foo = 2;
}
function do_something() {
  console.log(foo); //undefined
  var foo = 2;
}

//hosting:
function do_something() {
 var foo = undefined;
  console.log(foo);
  foo = 2;
}

Case 3: let不允许在相同作用域内,重复声明同一个变量: In a block, you can only define one variable one time.

// 报错
{
    let a = 10;
    var a = 1;
}

// 报错
{
    let a = 10;
    let a = 1;
}

But if you do something like:

function f1() {
  let n = 5;
  if (true) {
      let n = 10;
  }
  console.log(n); // 5
}

There is no problem! becuase 5 and 10 are in different block scope.

时间: 2024-10-13 22:18:44

[ES6] 04. The let keyword -- 2 Fiald case的相关文章

[ES6] 03. The let keyword -- 1

var message = "Hi"; { var message = "Bye"; } console.log(message); //Bye The message inside the block still has impact on the outside. If you add function around the inside message: var message = "Hi"; function greeting(){ va

[ES6] 05. The leg keyword -- 3. Block Scope

In ES6, IIFE is not necessary: // IIFE写法 (function () { var tmp = ...; ... }()); // 块级作用域写法 { let tmp = ...; ... } 另外,ES6也规定,函数本身的作用域,在其所在的块级作用域之内. function f() { console.log('I am outside!'); } (function () { if(false) { // 重复声明一次函数f function f() {

ES6 Syntax and Feature Overview(待续)

View on GitHub Note: A commonly accepted practice is to use const except in cases of loops and reassignment. However, in this resource I'll be using let in place of var for all ES6 examples. Variable: x Object: obj Array: arr Function: func Parameter

ES6中的数组

数组是js中很重要的数据类型,虽然在 ES5 中,关于数组的方法和属性很多.但为了更加简洁.高效的操作数组,ES6 中又在数组原型上和实例上新增了一些方法. 一.Array方法 1.1 Array.from() js中存在很多类似数组的对象,比如说 获取的一组DOM元素,比如说 函数的参数. 它们有着类似数组的属性,比如说键值对,或者 length 属性,但它们并不能使用数组里的方法. 要把一个类似数组的对象转换成一个真正的数组有时候可能很麻烦,就拿 函数的参数 来说,你需要通过如下方式: fu

我希望自己尽早知道的 7 个 JavaScript 怪癖(转载oschina)

如果对你来说JavaScript还是一门全新的语言,或者你是在最近的开发中才刚刚对它有所了解,那么你可能会有些许挫败 感.任何编程语言都有它自己的怪癖(quirks)--然而,当你从那些强类型的服务器端语言转向JavaScript的时候 ,你会感到非常困惑.我就是这样!当我在几年前做全职JavaScript开发的时候,我多么希望关于这门语言的许多事情我能尽早地知道.我希望通过本文中分享的一些怪癖能让你免于遭受我所经历过的那些头疼的日子.本文并非一个详尽的列表,只是一些取样,目的是抛砖引玉,并且让

Java 8 Features – The ULTIMATE Guide--reference

Now, it is time to gather all the major Java 8 features under one reference post for your reading pleasure. Enjoy! Table Of Contents 1. Introduction 2. New Features in Java language 2.1. Lambdas and Functional Interfaces 2.2. Interface Default and St

利用二叉树设计同学录管理系统

采用二叉树存储结构,利用预置数组建立二叉树:实现对通讯录的查找,基于查找实现对同学录的修改和新增成员:求所要操作节点的父节点,从而顺利地编写对同学录的删除操作. /*采用二叉树存储结构,利用预置数组建立二叉树:实现对通讯录的查找,基于查找实现对同学录的修改和新增成员:求所要操作节点的父节点,从而顺利地编写对同学录的删除操作.*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define M 100#defin

ArcGIS API for Silverlight 调用GP服务加载等值线图层

原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现GP服务调用,这里的雨量数据是通过一个WebService获取而来,主要信息是雨量站点的经纬度坐标值和某个时间段内的降雨量值三个主要字段. 以下是核心代码部分: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pr

Robot Framework 关键字自定义

关键字自定义有三种方法: 1.在自动化目录中右键-->New User Keyword 2.选中case中的步骤(可选多行),右键-->Extract Keyword 3.自己写模块,自定义方法,自动化项目引用模块,对应的模块中的方法就是一个个关键字了 方法1和2其实差不多,但没有方法3自由,在自动化的项目中一般都是方法混用的 要用关键字首先需要应用模块: 在directory和suite中都可以引用模块--library(py文件或者是本地python安装环境lib--sitepackage