首页IT科技es6特性总结(es6新增哪些特性)

es6特性总结(es6新增哪些特性)

时间2025-05-03 10:29:59分类IT科技浏览3713
导读:1、新增了let const关键字 let var const的区别 let 是代码块有效 var是全局有效 let 是不能重复声明的 var是可以多次声明 let不存在变量的提升 var存在变量的提升 const存储简单数据类型存储...

1           、新增了let const关键字

let var const的区别 let 是代码块有效 var是全局有效 let 是不能重复声明的 var是可以多次声明 let不存在变量的提升 var存在变量的提升 const存储简单数据类型存储的是常量

2               、新增的解构赋值

解构赋值针对数组或者对象进行模式匹配           ,然后对其中的变量进行赋值           。

let [a,b]=[1,2]

let {user}={user:“xiaosi          ”}

3     、新增了箭头函数

箭头函数和普通函数的区别

普通函数存在着变量的提升               ,箭头函数没有 普通函数的this指向     ,谁调用指向谁           ,箭头函数是在哪定义就指向谁 普通函数可以当成构造函数               ,而箭头函数是不可以的 箭头函数没有arguments,要接受所有的参数用...rest

4           、js的数据类型

简单数据类型

Number                、 String      、 Boolean       、 null                、undefined           、Symbol 

引用数据类型

Object Array Function Date RegExp

5      、数据类型判断 (得准确的知道每一种数据类型判断缺点)

typeof 能判断基本的数据类型     ,返回基本数据类型小写字符串形式 除了null      ,用typeof判断null 返回Object instanceof 可以判断引用数据类型 正常的判断A是B的实例是没有问题的               ,但是所有引用数据类型的对象用instanceof判断都是Object的实例 constructor 构造函数可以判断除了undefined 和null之外的任何数据类型          ,页解决了instanceof的问题 最完美的解决方案 Object.prototype.toString.call()返回的是[ Object 数据类型]

6                、es6新增了模块化

根据功能封装模块 通过import导入 然后通过export导出

可以使用 export 导出也可以使用export default导出

我们使用import 来导入

export 和 export defualt的区别

export 可以导出多个属性或者方法 ,需要用{}括起来 在用import接受的时候也得用{}接受 export default是以整体的方式抛出      ,接受的时候只接一个

7          、promise

promise是es6处理异步的一种方式                ,它的本质是一个对象,promise的参数是一个回调          ,回调有连个参数 resolve 成功回调 reject 失败回调               。它有三种状态分别为 初始状态pending 已完成fulfilled 已失败rejected     。状态改变只有两种结果 完成或者失败           。

promise处理错误的方式有两种 第一种在then中传递两个回调 第二个回调是错误回调

第二种方式是通过catch方式来实现

promise常用的api有 then ()处理回调函数 catch()捕获异常 还有两个常用的静态方法

Promise.all()一块处理多个promise请求,所有的请求都成功才成功               。

Promise.race()一块处理多个promise请求                ,有一个成功就成功

es7中可以使用async实现异步处理               ,还有一个关键字await可以实现异步函数同步化

8、新增类class关键字

class关键字是es5构造函数+原型模式创建对象的语法糖     。创建类的方式 class 类名{构造函数和方法} 通过extends关键字实现继承      。

需要录制的面试题:

js的数据类型 js的数据类型判断 箭头函数与普通函数的区别 let const var的区别 promise

9                、es6新增哪些特性?

es6新增了promise(标题) 需要说什么是promise es6新增了模块化 需要说什么是模块化 新增了class关键字 需要解释 新增了箭头函数 再说箭头函数与普通函数的区别 新增了解构赋值 需要解释什么是解构赋值 新增了let const关键字 需要说let const var的区别 新增了简单数据类型symbol

10               、作用域与作用域链

作用域:就是变量的使用范围               。js中作用域分为全局和局部

js的作用域分为全局作用域和局部作用域          。在全局作用域中是不能访问局部作用域中的数据      。在局部作用域中访问变量如果当前作用域中有可以直接访问,如果没有那么向上级作用域中访问           ,如果上级作用域也没有就继续向上找               ,知道找到全局window作用域     ,如果window作用域也没有返回undefined,整个作用域的访问形成了一个作用域链

11、说一下闭包

概念

闭包是指有权访问另外一个函数作用域中的变量的函数                。可以理解为(能够读取另一个函数作用域的变量的函数)

特性

1:函数套函数

2:内部函数可以直接访问外部函数的内部变量或参数

3:变量或参数不会被垃圾回收机制回收

定义

Plain Text

<script> //第一种定义方式 function  outer(){ var num=10; function inner(){ return num+=10 } return inner() } //调用 console.log(outer()) //第二种定义方式 function  out(){ var num=10; return inner=function(){ return num+=10 } } //调用 console.log(out()())</script>

优缺点

优点:

1:变量长期驻扎在内存中

2:避免全局变量的污染

3:私有成员的存在

缺点:

常驻内存 增大内存的使用量 使用不当会造成内存的泄露.

12           、原型与原型链

原型:每一个对象都有一个prototype属性可以挂载要扩展的属性和方法           ,在prototype上挂载的属性和方法在这个对象的任何实例上都可以调用          。

当一个对象调用自身不存在的属性/方法时               ,就会去prototype关联的父类对象上去找     ,如果找不到继续去父类关联的对象上去找      ,直到找到Object的属性和方法               ,找到直到调用          ,找不到返回undefined

13               、对象的浅拷贝与深拷贝

由于引用数据类型的数据是存储在堆空间中      ,在栈空间中存储的是是数据的引用地址。

对象的浅拷贝就是将栈空间中的地址复制一份                ,两个地址指向的同一个数据

浅拷贝可以使用Object.assign()来实现 深拷贝可以使用JSON.stringify()先转换为json的串复制          ,然后再通过JSON.parse()转换回来

14     、说一下js的事件机制

js中存在两种事件机制,一个是ie提出的冒泡事件机制 还有一个是网景提出的捕获型事件机制

冒泡事件机制是先触发事件的的直接元素                ,然后向外扩散就像冒泡一样                。捕获型就是事件从外向里执行               。js中的事件监听addEventListener的第三个参数默认的为false 是冒泡 为true是捕获

我们可以通过event.stopPropagation()来实现

15           、rem布局的原理

1rem的大小就是根元素<html>的font-size的值,通过设置 根元素<html>的font-size的大小               ,来控制整个html文档内的字体大小               、元素宽高     、内外边距等

16      、如何实现响应式布局

响应式布局可以让网站同时适配不同分辨率和不同的手机端,让客户有更好的体验

响应式布局实现的方案:

百分比布局 媒体查询 rem布局 vw vh布局 flex弹性盒布局

17               、$route和$router的区别

$route是一个跳转的路由对象           ,每一个路由都会有一个$route对象               ,是一个局部的对象     ,可以获取对应的name           ,path               ,params     ,query等

$router是VueRouter的一个对象      ,通过Vue.use(VueRouter)和Vue构造函数得到一个router的实例对象               ,这个对象中是一个全局的对象          ,他包含了所有的路由      ,包含了许多关键的对象和属性。

18          、params和query传参的区别

params传值的参数是路由的一部分                ,所以调转必须加参数值才能调转 query传参和路由配置没有关系 获取方式是不一样的 query this.$route.query.参数名 params是 this.$route.params.参数名

19      、mpa和spa的区别

mpa 多页面应用

一套系统有多个页面组成          ,页面之间的切换是由a标签的herf属性和script的location.href来实现的

spa是单页面应用

一套系统就由一个页面来承载,数据的切换是由路由来实现

mpa与spa的优缺点:

对于切换来说                ,路由的切换肯定比页面的切换更顺畅 所以spa的切换会好 spa的首屏加载慢               ,mpa的首屏加载快

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win10查找我的设备怎么关闭(Windows 10如何开启“查找我的设备”功能) win11退回win10会清除数据吗(Win11退回Win10没反应怎么办?Win11退回Win10没反应的解决方法)