当前位置: 首页 > news >正文

学习前端面试知识

2024-8-10  打卡第十天  学习视频链接

es5和es6的区别大概介绍

  • es5没有块级作用域,es6出现了块级作用域let和const
    • es5的var有变量提升(对于使用 var 声明的变量,JavaScript 会将其声明部分提升到所在作用域的最开始,但变量的初始化(即赋值)仍然保留在原位置。这意味着你可以在声明变量之前访问该变量)。
    • 两个块级变量与 var 不同,let 和 const 声明的是块级作用域(block scope)的变量,它们也被“提升”,但这种提升的行为与 var 有所不同。let 和 const 的声明会被提升到所在作用域的开始,但有一个重要的区别:在它们被实际声明之前的区域,这些变量是处于“暂时性死区”(Temporal Dead Zone, TDZ)的。这意味着在它们被声明之前的任何尝试去访问或修改这些变量的行为都会抛出 ReferenceError
  • es6出现了箭头函数的概念 (() => {})
  • 模版字符串,允许换行

<script>let name = 'John';let gretting = `Hello ${name}!`;console.log(gretting);
</script>
  • es6解构赋值 从数组或者对象中解构进行赋值,边提取边赋值...arr
  • es6中for of循环 遍历数组,set,map
  • import export 导入导出的标准
  • es6中set 数据结构,所有数据唯一没有重复值
  • ... 展开运算符
  • 修饰器 @decorator 编译执行的函数
  • es6中可以使用class类,不需要像es5一样原型链形成
  • async await promise
  • promise 异步编程解决方案
  • Symbol es6新增的基础类型,返回唯一值
  • Proxy 代理对象(vue3中使用)

var,let,const区别

  • var可以重复声明,let不能重复声明
  • var不受限于块级,let和cosnt都是块元素
  • var会跟window相映射
  • var可以在声明的上方访问变量,let和const都是暂存性死区,声明前调用会报错
  • const声明后必须赋值,表示设置为常量,不能修改

使用箭头函数应该注意什么

  • () => {} 
    • this不再指向window,而是指向父级,指向可变
    • 不能使用arguments
    • 不能使用构造函数,即不能使用new创建相关实例不然会抛出异常
    • 不能使用yield命令,不能用做generator函数

set和map的区别

set相关

  • set一般用于数组
  • 成员不能重复
  • 只有键值没有键名类似数组
  • 可以遍历 add delete has
  • 常见操作:数组去重

map相关

  • 本质上是一个键值对的集合,类似集合
  • 可以遍历,跟各种数据格式转换
  • 常见操作:存储数据类型的结构

Promise有几种状态

  • 初始状态 pending
  • 成功 fulfilled
  • 失败 reject
  • 状态不可逆,从pending-fulfilled表示成功的触发或者pending-reject表示失败,会触发catch
  • 下列代码输出顺序为1243
<script>const promise = new Promise((resolve,reject) => {console.log(1);resolve();console.log(2);})promise.then(() => {console.log(3);})console.log(4);
</script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • cnetos部署高可用以及七层负载均衡
  • git clone 大文件 eof 错误
  • uniapp——列表选择样式
  • 消息队列项目
  • 职业本科大数据实训室
  • 如何使用 AWS CLI 创建和运行 EMR 集群
  • Nginx + PHP 8.0支持视频上传
  • Golang | Leetcode Golang题解之第326题3的幂
  • SoildWorks练习清单
  • C++初学者指南-5.标准库(第二部分)--二叉堆操作
  • node 与 webhdfs 交互
  • IOC容器初始化流程
  • [大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型
  • jmeter使用问题记录
  • 数据库篇--八股文学习第十九天| Redis的数据类型有哪些?;Redis是单线程的还是多线程的,为什么?;说一说Redis持久化机制有哪些
  • 78. Subsets
  • Angularjs之国际化
  • CEF与代理
  • gulp 教程
  • js对象的深浅拷贝
  • Laravel 菜鸟晋级之路
  • Linux gpio口使用方法
  • Shadow DOM 内部构造及如何构建独立组件
  • Solarized Scheme
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 翻译--Thinking in React
  • 后端_ThinkPHP5
  • 码农张的Bug人生 - 见面之礼
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 使用 QuickBI 搭建酷炫可视化分析
  • 手写双向链表LinkedList的几个常用功能
  • raise 与 raise ... from 的区别
  • 回归生活:清理微信公众号
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # SpringBoot 如何让指定的Bean先加载
  • #### go map 底层结构 ####
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)球球大作战
  • (floyd+补集) poj 3275
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (SpringBoot)第二章:Spring创建和使用
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)c52学习之旅-简单了解单片机
  • (二)fiber的基本认识
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (三)elasticsearch 源码之启动流程分析
  • (三十五)大数据实战——Superset可视化平台搭建
  • (学习日记)2024.01.19
  • (转)EOS中账户、钱包和密钥的关系
  • (状压dp)uva 10817 Headmaster's Headache