前端面试题(es6专场)

  1. 简述一下你知道的有哪些ES6的新特性
    Let const 结构赋值 箭头函数 字符串模板 class类 promise 箭头函数 解构赋值 let const async await

箭头操作符(箭头函数)
类的支持(class)
字符串模板
解构赋值
默认参数,不定参数,拓展参数
let与const 关键字
模块
Promise
2. 说一下什么是块级作用域 , 它有什么作用
块级作用域就是let const,作用就是不会进行变量提升,能解决内存泄漏

作用:

变量提升
块级作用域任意嵌套
外层作用域无法读取内层作用域的变量
内层作用域可以定义外层作用域的同名变量
函数本身的作用域在其所在的块级作用域之内
在ES5中,因为没有块级作用域,获得广泛运用的是立即执行函数。现在ES6增加了块级作用域,那么立即执行函数就不再必要了
在严格模式下,函数只能在顶级作用域和函数内声明,在if代码块和循环代码块下的声明都会报错。
3. 谈谈箭头函数 有什么特点 ()=>{}
不能作为构造函数,不能使用new
不能使用arguments,取而代之用rest参数解决
不绑定this,会捕获其定义时所在的this指向作为自己的this
箭头函数没有原型对象
与执行时this无关 ,只与定义时的this有关。 箭头函数能够保存this的指向
语法简单
内置return语句、单行代码返回当前代码的返回值、多行时返回undefined
自动绑定this、this为上级的作用域中、也就是定义时所在的作用域中的this
没有arguments参数
没有constructor、prototype属性、不能被new
以字面量的形式作为对象的属性时、容易发生引用错误
4. class 类 中 super关键字 super 当函数时表示什么?super当对象时表示什么?
当super关键字表示原型对象时,只能用在对象的方法中

当super关键字表示函数时,总是指向函数所在的当前对象

函数时,指向父类的构造器

对象时,指向父类的原型

  1. ES6 中你是怎么使用 promise 的 ?
    New promise 带2个参数(resolve,reject)执行返回一个成功的回调函数或是一个失败的回调函数。再在返回的函数上直接调用then方法,then接收一个参数,是函数(这个函数是回调函数)

promise是用来实现异步编程的一种解决方案

Promise在生命周期内有三种状态,

分别是

pending(进行中)、
Resolved(已完成,又称 Fulfilled) 或
rejected(已失败)
使用方式:(一个成功的resolve函数, 一个失败的reject函数)

(1)new Promise(function(resolve, reject)

(2)then(resolve,reject)

(3)then(resolve),catch(reject)

  1. 严格模式 有什么 特点 ? (3-4条)
    1.严格模式下不可以使用with()

2.严格模式下,变量必须声明

3.严格模式下,this默认是undefined

4.严格模式下,为只读变量和不可扩展对象赋值会报错

5.严格模式下,函数的形参不可以同名

6.严格模式下,不可以使用caller和arguments的属性,会报错

  1. 混合开发的原理(cordova DCloud 微信JSSDK)
    WebViewJavacrriptBridge是移动UIView和Html交互通信的桥梁,实现native code和js 的互相调用的桥梁。

  2. 混合开发的优缺点
    优点

1.一次编译多平台运行

2.开发速度快,不需要了解各个平台的native开发语言也可以开发轻量级移动应用

3.各平台UI表现一致

4.内容更新不需要内容审查

缺点

  1. 使用体验与native开发有差距

  2. 前端代码容易被盗取

  3. JSSDK 你知道的有哪些 API (SDK JDK)
    Wx.createAudioContext(相机)

Wx.createMapContext(地图)

Wx.getExtConfig(第三方平台)

Wx.getShareInfo(获取转发详细信息)

分享到朋友圈 wx.ready(function{ })

图像选择接口 wx.chooseImage({})

获取地理位置接口 wx.getLocation({})

wx.request wx.showtoast. wx.showloading wx.getstoragesync. wx.getuserinfo

Map. Swiper button input scroll-view from image

  1. 你在实际开发中如何和IOS/Android 程序员进行交互的。
    可参考:https://www.jianshu.com/p/8eba2c328d5e

传统开发模式:

一般传统上的开发协作模式有两种:

一种是前端先写一个静态页面,写好后,让后端去套模板。静态页面可以本地开发,也无需考虑业务逻辑只需要实现View即可。不足是还需要后端套模板,这些前端代码后端需要浏览一遍,以免出错。

另一种协作模式是,前端直接去写模板,这样做的问题在于,前端编写过程中很依赖与后端环境,如果当后端没写完的情况下,前端几乎没法干活。

从传统到前后端分离:

前后端分离意味着,前后端之间使用 JSON 来交流,两个开发团队之间使用 API 作为契约进行交互。从此,后台选用的技术栈不影响前台。当后台开发人员选择 Java 的时候,我可以不用 JSP 来编写前端页面,继续使用我的 React 又或者 Angular。而我使用 React 时,也不影响后台使用某一个框架。安卓和IOS app也可以使用 JSON 来和后端交流。

当变量还没有赋值的时候,使用变量的时候,会报一个undefined,js是弱语言,会进行变量提升

后台传一个URL给你,将URL传给安卓/iOS,他负责播放

  1. 变量提升如何产生?
    在声明之前变量值为undefined

将变量的声明提升到执行环境的最顶端

原理:JS引擎的工作方式是①先解析代码,获取所有被声明的变量;②然后在运行。也就是专业来说是分为预处理和执行两个阶段。

变量提升的定义:所有变量的声明语句都会被提升到代码头部,这就是变量提升。

  1. 微信小程序开发 中 关于 page的生命周期钩子函数 有哪些?
    onload onready. onShow,onHide,onUnload

  2. 微信小程序 如何设置 https 请求 , wx.request 可以使用 POST 请求吗?
    买腾讯云域名十几块,服务器一两百

  3. 微信小程序 你经常使用哪些指令 wx:if wx:for hidden
    wx:if. Wx;for hidden

  4. 微信小程序 绑定事件 bindtap 和 catch 的区别
    bindtap. 不会阻止事件冒泡

catch 阻止事件冒泡

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值