美文网首页Web 前端开发
ES6的一些笔记(一)

ES6的一些笔记(一)

作者: 曾迦 | 来源:发表于2016-09-09 12:36 被阅读125次

变量的声明关键字


varletswift很像,但是考虑到语言先后的时间swift是在模仿js,在swift语言中可以根据编译器自动判断变量的数据类型,而在js中也完全不用管数据类型,直接使用就好。

var:

varjs的语法的ES5规范中并没有块级作用域的说法,这一点有区别于其他语言,所以在一段代码中如果声明了var变量那么这个变量就是全局的在if...else的判断{}中与for循环中var所声明的变量也是全局的。

var的变量提升,在js的语言中因为变量和函数的变量提升,所以可以先调用,后声明如下:

 // 这个时候输出的是undefined,表示的是一个未初始化的空值,在其他语言中有可能就直接找不到这个变量而报错了。
  console.log(a); 
  var a = 20;

但是在其他部分语言中是不可以先使用后声明的包括ES6中新声明的let也不可以所以不建议利用变量提升的写法,尽量先声明在使用。

var声明的变量属于全局变量,会挂载到window上。

let:

let关键字是ES6中新出现的,在swiftvar是变量而let是常量。

jslet在一段代码中只可以出现一次,而所谓的一段代码就是一个{},在一个{}let一旦出现,它所声明的变量就只可以有一份,不允许变量提升,也不可以重复声明(形参同变量名也不可以),并且在{}作用域消失后,let的变量释放,即外部作用域不可以访问内部作用域的值。

let声明的变量属于局部变量,不会挂载到window上。

const:

第一次接触const是在C语言中,JSconst用法与C基本相同。
const作用是修饰的变量值本身不可以被改变,值得注意的是变量中如果储存的是复杂数据类型如对象,那么变量本身所储存的是变量的地址,地址不可以改变但是地址内所储存的数据挂载的属性是可以改变的。代码如下:

 const a = "张三";
a = "李四";   // 这个时候 会报错 因为a的值不可以修改.

const obj = new Object();
obj.name = "object";  // 可以修改 因为const所修饰变量obj本身的地址没有改变

const基本与let使用方式相同。

总结:

var当需要用到全局变量的时候使用。
let需要局部变量的时候使用。
const定义一个值不允许改变的时候使用。
在代码块中尽可能的使用let,变量与函数尽可能的先声明在调用。

相关文章

  • ES6从入门到...

    项目中基本上用的都是Es6看阮一峰大神的ECMAScript 6 入门整理一些学习笔记 let ES6 新增了le...

  • Ant Design Pro的知识储备

    Less 笔记 Less 官方文档 ReactJs笔记 ReactJs官方文档 ES6笔记 ES6文档 dvaJs...

  • ES6 学习笔记(二)

    ES6 学习笔记,如有错误,欢迎指正。 笔记只记录了一些个人认为需要记住的知识点。 参考:ECMAScript 6...

  • ES6的一些笔记(一)

    变量的声明关键字 var与let和swift很像,但是考虑到语言先后的时间swift是在模仿js,在swift语言...

  • 6 【单向链表】单向链表

    昨天写链表出现了一些问题,而且现有教材有些代码陈旧,没有使用ES6语法,于是啃了一天的ES6,笔记还在整理,整理好...

  • ES6函数扩展

    本文只是学习es6的一些简单笔记,详情请看阮一峰的es6入门。 关于函数参数的默认值 什么时候需要为函数参数设置默...

  • ES6 学习笔记(一)

    ES6 学习笔记,如有错误,欢迎指正。 笔记只记录了一些个人认为需要记住的知识点,其他的可以参考文末的网站。 le...

  • ES6的一些笔记(五)

    正则表达式 与以前相比的一些修改 new RegExp(/xxx/ , y); 新增 Symbol下的4种方法 查...

  • ES6的一些笔记(六)

    函数 新特性 新增参数默认值 在写函数的时候可以给形参所在的变量分配一个默认值,如果在调用函数的时候,没有写入实参...

  • ES6的一些笔记(二)

    模板字符串 ${}中可以嵌入变量和表达式 字符串的解析构值 字符串方法的扩展 includes(string,in...

网友评论

    本文标题:ES6的一些笔记(一)

    本文链接:https://www.haomeiwen.com/subject/tcansttx.html