前端近年面试题(4)

三十一.bind() apply()

1、call()、apply()、bind() 都是用来重定义 this 这个对象的!

obj.myFun.call(db);    //德玛年龄99
obj.myFun.apply(db);    //德玛年龄99
obj.myFun.bind(db)();   //德玛年龄99以上出了bind 方法后面多了个 () 外 ,结果返回都一致!由此得出结论,bind 返回的是一个新的函数,你必须调用它才会被执行

2、

obj.myFun.call(db,'成都','上海');     //德玛 年龄 99  来自 成都去往上海
obj.myFun.apply(db,['成都','上海']);        //德玛 年龄 99  来自 成都去往上海  
obj.myFun.bind(db,'成都','上海')();         //德玛 年龄 99  来自 成都去往上海	
obj.myFun.bind(db,['成都','上海'])();   //德玛 年龄 99  来自 成都,上海去往undefined

call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了:

call的参数是直接放进去的,第二第三第n个参数全都用逗号分隔,直接放到后面  obj.myFun.call(db,'成都', ... ,'string' );
apply的所有参数都必须放在一个数组里面传进去  obj.myFun.apply(db,['成都', ..., 'string' ]);
bind除了返回是函数以外,它 的参数和call 一样

拓展:
 
在这里插入图片描述
第一个打印里面的this 指向obj,第二个全局声明的shows()函数 this 是window ;

三十二.const用法

1.const定义的变量不可以修改,而且必须初始化。
2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。(块级作用域是Es6之后才有的概念)

使用 var 关键字重新声明变量可能会带来问题:在块中重新声明变量也会重新声明块外的变量(let则不会):

var x = 10;// 这里输出 x 为 10
{ 
    var x = 2; // 这里输出 x 为 2。若这里为let就不会出现这种状况了
}
// 这里输出 x 为 2

三十三.Utf-8编码汉字占多少个字节

占1个字节:utf8数字、utf8英文字母
占2个字节:带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码
占3个字节:基本等同于GBK,含21000多个汉字
占4个字节:中日韩超大字符集里面的汉字,有5万多个

三十四.Vue的钩子函数

vue.js的钩子函数,就是生命周期函数。
共有八个基本钩子函数

1.beforeCreate --创建前
触发的行为:vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。
在此阶段可以做的事情:加loading事件
2.created --创建后
触发的行为:vue实例的数据对象data有了,$el还没有
在此阶段可以做的事情:解决loading,请求ajax数据为mounted渲染做准备
3.beforeMount --渲染前
触发的行为:vue实例的$el和data都初始化了,但还是虚拟的dom节点,具体的data.filter还未替换
在此阶段可以做的事情:。。。
4.mounted --渲染后
触发的行为:vue实例挂载完成,data.filter成功渲染
在此阶段可以做的事情:配合路由钩子使用
5.beforeUpdate --更新前
触发的行为:data更新时触发
在此阶段可以做的事情:。。。
6.updated —更新后
触发的行为:data更新时触发
在此阶段可以做的事情:数据更新时,做一些处理(此处也可以用watch进行观测)
7.beforeDestroy —销毁前
触发的行为:组件销毁时触发
在此阶段可以做的事情:可向用户询问是否销毁
8.destroyed —销毁后
触发的行为:组件销毁时触发,vue实例解除了事件监听以及和dom的绑定(无响应了),但DOM节点依旧存在
在此阶段可以做的事情:组件销毁时进行提示

三十五.http和https的区别

https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三十六.前端开发工具webstorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。
已经被广大中国JS开发者誉为"Web前端开发神器"、"最强大的HTML5编辑器"、"最智能的JavaScript IDE"等。
与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

三十七.Vue基于什么语言

Vue
Vue.js(开发商是尤雨溪)是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 。

Vue.js 自身不是一个全能框架–它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时 ,Vue.js 也能完美地驱动复杂的单页应用。

Bootstrap

Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,还拥有非常完备和详尽的开发文档,有了它,Web开发人员能够轻松搭建出清爽风格的界面以及实现良好的交互效果。它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。

38.Vue的第三方组件库Iview
Vue常用组件库的比较分析(pc端):

1、Element(pc):饿了么前端团队开发的桌面端组件库
2、iView(pc):主要服务于 PC 界面的中后台产品
3、vuetify(pc):一个试图推动前端开发发展到一个新水平的组件
4、vue-strap(pc):基于 Bootstrap 标记和 CSS 的本地 Vue.js 组件
5、buefy(pc):即装即用的轻量级UI组件
6、Vue-Blu(pc):全面、灵活且强大的ui组件
7、vue-beauty(pc):漂亮的 vue 组件库
8、at-ui(pc):一个体面的干净整洁的 UI 组件
9、Keen UI:纯英文文档
10、Vue Material:具有精美动效的组件

vue常用的一些第三方插件更多

Axios(官方推荐的ajax数据请求的插件)
Vue-Router(vue路由管理插件)
Vuex(vue数据中心化状态管理插件)
Less(css预处理插件)
Sass(css预处理插件)
Element-Ui(饿了么ui插件)
Mint-ui(移动端ui插件)
swiper-vue(swiper的vue包)
cross-env(用来设置环境变量及数据接口域名)

Vue-ui常用组件库整理更多

element-ui
VUX
iview
Mint UI
Muse UI
antd vue
vue-mui
radon-ui
weex
N3
vuikit
Vue-layout

39.HTML5的新特性
(1)语义标签

header、footer、nav、section、article、aside、detailes、summary、dialog

(2)增强型表单
新的表单 Input 输入类型:color、date、datetime、datetime-local、email、month、number、range、search、tel、time、url、week
新增表单元素:

<datalist><keygen><output>

新增的表单属性:

placehoder 、pattern (正则表达式)、min、 max、step、height 、width、autofocus 、multiple

(3)视频和音频

 audio元素播放音频文件,支持三种音频格式文件: MP3, Wav, 和 Ogg
 video 元素来包含视频的标准方法:
		control 提供了 播放、暂停和音量控件来控制视频。
		使用dom操作来控制视频的播放暂停,如 play() 和 pause() 方法。
		width 和 height 属性控制视频的尺寸.如果设置的高度和宽度

(4)Canvas绘图
(5)SVG绘图
SVG 与 Canvas两者间的区别:

SVG 是一种使用 XML 描述 2D 图形的语言。
Canvas 通过 JavaScript 来绘制 2D 图形。

更多
40.ajax

AJAX = Asynchronous JavaScript and XML(异步JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

AJAX 应用

运用XHTML+CSS来表达资讯;
运用JavaScript操作DOM(Document Object Model)来执行动态效果;
运用XML和XSLT操作资料;
运用XMLHttpRequest或新的Fetch API与网页服务器进行异步资料交换;
注意:AJAX与Flash、Silverlight和Java Applet等RIA技术是有区分的。

拓展更多面试题(100道前端面试题练手):

1、前端近年面试题(1)
2、前端近年面试题(2)
3、前端近年面试题(3)
4、前端近年面试题(4)
5、前端近年面试题(5)
6、前端近年面试题(6)
7、前端近年面试题(7)
8、前端近年面试题(8)
9、前端近年面试题(9)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值