es6 let

摘要:
2.块级作用域下let和const声明的变量是私有的,不能在外部访问。3.for循环下的let声明事件是异步的。在for循环结束后,i为3,并且仍然是全局的。在最后一次提示li时单击i,此时3,所有内容都将弹出。3.如果{}表示一个对象,则不能将其放在行的开头,也就是说,在{}前面没有任何东西,如果有,则是一个对象。

1.变量

var  function let const class import    定义变量的关键字

备注     不能忽略函数的形参      函数的私有变量

var     定义变量

var 定义变量能够提升但是不能定义  给window添加一个对应的属性

function    即可以提前声明     同时还定义了

定义:所谓的定义  就是给这个变量赋值了。

let

是es6提供的一种声明变量的方式

1.  没有变量提升的功能  在声明之前不能使用

2. 不能重复使用

3. 不会给window添加属性

作用域

var的作用域

var声明的变量  作用域分两种

全局作用域

  在window下声明的变量或者在函数外生命的变量,

局部作用域

  在函数内声明的变量

了解浏览器执行的机制

  浏览器在执行的时候,首先开辟一个大空间叫window,window下面主要分两个模块,一个叫栈,一个叫堆。栈用来存放变量的内存地址,堆主要存放代码块.然后浏览器从上到下执行代码。

function 申请的变量

  function 声明的变量也会给window添加一个属性  属性值是方法。

  函数归属?

  函数归谁,跟它在哪调用无关,跟它在哪调用无关,跟他在那定义有关。

es6 let第1张

任何一个函数执行后都有一个返回值,如果写return return的是什么就得到什么,如过没有得到的是undefined

es6 let第2张

函数在if中的特殊情况

es6 let第3张

在if语句中定义的函数,只声明不定义,当条件成立的时候,if模块中不管函数放在哪声明的函数,都会第一步对这个函数先定义,在去执行if里面的代码

es6 let第4张

快级作用域

带{}的都是块级作用域,if(){} for(){}  对象{}

var function  没有块级作用域这个概念,let和const有块级作用域这个概念

1,在块级作用域下var和function跟在window下一样,function有个特殊的,在块级作用域前会提到声明不会定义。

es6 let第5张

2.在块级作用域下let和const声明的变量是私有的,外面访问不到

es6 let第6张

3.for 循环下let声明

 es6 let第7张

事件时异步的,for循环结束之后i是3并且i还是全局的,点击了li最后alert处i,一此时时3,所有都会弹出3.

es6 let第8张

块级作用域和对象

如果{}表示对象,不能放在行首,就是{}前面没有任何东西,如果有了就是对象。

没有就代表块级作用域

eval('({name:"zhangsan",age:23})')

暂时性死区

如果块级做用域使用let和const命令声明变量了,这个区域就会被这个变量强制绑定,凡是在声明之前这些变量都是不可用的,使用会报错,这是暂时性死区。

es6 let第9张

暂时性死区的场景

es6 let第10张

使用便量b在定义变量b之前了,出现了暂时性死区

  let a=a报错,赋值运算是从左往右,右边使用变量a结果a没有声明,而let语法规定不能在没定义前使用便量,所以报错。

  var a=a;不报错       因为var可以变量提升,在等号赋值的时候,是从右往左,使用变量a,此时a是undefined,赋值时就是把undefined赋值给a,所以a还是undefined。

函数参数默认值

  1.写法上 有默认值的写后面,没有默认值的写前面

  2.如果传对应的参数,就不要默认值了,不是先赋默认值,然后用实参去覆盖。

免责声明:文章转载自《es6 let》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.binvox格式解析稳稳的掌握“数据库连接池下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx Rewrite域名及资源重定向

一.正则匹配     1.匹配规则         ^$  标识符匹配后面跟-一个字符串。匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~/images/,在匹配了/images/这个字符串后就停止对后续的正则匹配         =   精准匹配,如location=/,只会匹配url为/的请求         ~   区分大小写的...

Linux下的crontab定时、执行任务命令详解 oracle 自动备份

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron服务  cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。  se...

iOS 代码规范

1 目的 统一规范XCode编辑环境下Objective-C、swift的编码风格和标准 2 适用范围 适用于所有用Objective-C,swift语言开发的项目。 3 编码规范 3.1 文件 项目文件必须使用一个有意义的名字且前缀以PRJ_。例如:XCcode中下拉刷新的项目文件被命名为’PRJ_PullDownRefresh.xcodepro...

【Java虚拟机6】Java内存模型(Java篇)

什么是Java内存模型 《Java虚拟机规范》中曾试图定义一种“Java内存模型”(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 在此之前,主流程序语言(如C和C++等)直接使用物理硬件和操作系统的内存模型。因此,由于不同平台上内存模型的差异,有可能导致程序...

[JAVA] 运行 java HelloWorld 命令,提示“错误: 找不到或无法加载主类

肯定是哪里出了问题,需要检查命令、系统环境变量配置、代码三个方面: 命令 java运行需要先使用“javac HelloWorld.java”命令对java文件进行编译,编译会自动生成一个同名的以“.class”为后缀的类文件放在同一目录,然后再执行“java HelloWorld”来运行。(注意:此处运行“java”命令,java后只能跟文件名,不需要任...

瀑布流的三种实现方式(原生js+jquery+css3)

前言 项目需求要弄个瀑布流的页面,用的是waterfall这个插件,感觉还是可以的,项目赶就没自己的动手写。最近闲来没事,就自己写个。大致思路理清楚,还是挺好实现的... 原生javascript版 <!DOCTYPE html> <html lang="en"> <head> <meta charset=...