面筋系列-javascript-ES6基础
2020/3/15 11:01:41
本文主要是介绍面筋系列-javascript-ES6基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
箭头函数和普通函数的区别
-
箭头函数是匿名函数,不能作为构造函数,不能使用new
-
箭头函数不绑定arguments,取而代之用rest参数
(...rest)
-
箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值.其中需要注意的是: 箭头函数的 this 永远指向其上下文的 this ,任何方法都改变不了其指向,如 call() , bind() , apply()
var obj = { a: 10, b: () => { console.log(this.a); // undefined console.log(this); // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …} }, c: function() { console.log(this.a); // 10 console.log(this); // {a: 10, b: ƒ, c: ƒ} } } obj.b(); // window obj.c(); // 10 复制代码
- 箭头函数没有原型属性
var a = ()=>{ return 1; } function b(){ return 2; } console.log(a.prototype); // undefined console.log(b.prototype); // {constructor: ƒ} 复制代码
谈谈var,let,const 的使用和区别
- 1、在 ES6之前,ES5中js只有全局作用域和函数作用域,let ==增加了块级作用域==
if(true) { let a = 'name' } console.log('a',a) // a is not defined 复制代码
- 2、let 限制了变量提升(JavaScript 中函数和变量都会提升,==函数的提升优先级大于变量的提升==,所以下面会先打印函数)
变量提升指的是变量声明的提升,不会提升变量的初始化和赋值。
function fn() { console.log('a', a); var a = 1; function a () { console.log('I am a function'); } } fn() // ƒ a () {console.log('I am a function');} 复制代码
使用 let 的时候
function fn1() { console.log('a', a); let a = 1; function a () { console.log('I am a function'); } } fn1(); VM1868:4 Uncaught SyntaxError: Identifier 'a' has already been declared 复制代码
-
3、使用 var 可以重复声明变量,但是 ==let 不允许在同一块作用域内重复声明同一个变量==, 和 const 不能重复命名
-
4、==let 不允许设置全局变量==,var 可以
const
不能修改值,const 声明的变量必须经过初始化。
以上 let 的规则同样适用于 const,但是跟 let 的区别是 const 声明的变量不能重新赋值,所以 const 声明的变量必须经过初始化。
参考
这篇关于面筋系列-javascript-ES6基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门