js-面试题整理

时间:2023-02-14 15:27:46
var Foo = function(){
getName = function(){alert(1)};
return this;
}
Foo.getName = function(){alert(2)};
Foo.prototype.getName = function(){alert(3)};
var getName = function(){alert(4)};
function getName(){
alert(5)
}; Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

1.vue 路由跳转后返回,保持页面滚动条行为

  

const router = new VueRouter({
routes: [...],
scrollBehavior (to, from, savedPosition) {
// return 期望滚动到哪个的位置 }
})

2.bind,call,apply 的用法与区别

  bind是返回相对应的函数,稍后执行,call和apply是立即执行,改变this的指向,可以做继承。

function testName (name,age ){
this.name = name;
this.age = age;
this.getName = function(){
console.log(this.name)
}
} function childName(){
testName.apply(this,arguments); //继承testName上的所有方法
} let getname = new childName('test',25)
getname.getName();

3. 给指定数组去重

function testArr(arr){
var result = new Set(arr); //set 去重
return Array.from(result);
}
let arr = [1,2,3,2,3,4,1];
console.log(testArr(arr));

4.求给定字符串中出现最多的次数

function getMax(str) {
let obj = {};
let maxNum = 0;
let maxStr = '';
for (let i = 0; i < str.length; i++) {
if (!obj[str[i]]) {
obj[str[i]] = 1;
if (obj[str[i]] > maxNum) {
maxNum = obj[str[i]];
maxStr = str[i]
}
} else {
obj[str[i]]++;
if (obj[str[i]] > maxNum) {
maxNum = obj[str[i]];
maxStr = str[i]
console.log(maxNum)
}
}
}
return {
maxNum: maxNum,
maxStr: maxStr
};
} let str = 'aaaffffasscccvdfffgeerghh';
console.log(getMax(str))

5.异步的解决方案

  a.settimeout(),延迟加载;b.回掉函数,callback;3.事件监听;4.promise,减少回调地狱,用then,catch。

6.跨域的解决方案

  协议,域名,端口号不同就会存在跨域。"跨域资源共享"(Cross-origin resource sharing)是W3C出的一个标准。兼容性方面可以支持IE8+(IE8和IE9需要使用XDomainRequest对象来支持CORS),所以现在CORS也已经成为主流的跨域解决方案;jsonp(只支持get请求);h5的新api:postMessage();

7.vue-router 的钩子

  beforeEach(to,from,next);afterEach();updateEach()l;组件内的:beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave

8.vue数据双向绑定的原理是什么?

  vue是通过数据劫持结合发布者-订阅者模式的方式,通过object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。(ps:只是劫持data中定义的属性,未被定义的属性,在method中创建时,需要通过this.$set()进行插入)(vue响应式原理)

9.vuex的属性

  state:vuex的变量仓库,定义变量的;

  mutation:定义同步方法;

  action:提交mutation的方式,而不是直接提交,也可用于异步操作,

  getter:相当于computed,返回计算属性的操作直

10.v-if与v-show之间的不同点

  v-if主要是操作DOM的显示和隐藏,v-show主要是改变元素的display的css属性显示隐藏;

11.vue-loader是什么,有什么用途

  vue-loader是vue文件的一个加载器,可以让js写es6语言,style使用less或者scss,template可以加jade等。

12.

js-面试题整理的更多相关文章

  1. vue&period;js面试题整理

    Vue.js面试题整理 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务 ...

  2. 【前端芝士树】Vue&period;js面试题整理 &sol; 知识点梳理

    [前端芝士树] Vue.js 面试题整理 MVVM是什么? MVVM 是 Model-View-ViewModel 的缩写. Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑. ...

  3. Vue&period;js面试题整理(转载)

    一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑:View 代表UI ...

  4. 【前端开发】 JS面试题整理

    1.截取字符串abcdace的acealert('abcdace'.substring(4)); 2.规避javascript多人开发函数重名问题命名空间封闭空间js模块化mvc(数据层.表现层.控制 ...

  5. Vue&period;js 面试题整理

    Vue项目结构介绍 build 文件夹:用于存放 webpack 相关配置和脚本. config 文件夹:主要存放配置文件,比如配置开发环境的端口号.开启热加载或开启gzip压缩等. dist 文件夹 ...

  6. 整理Vue&period;js 面试题

    Vue.js 面试题整理   Vue项目结构介绍 build 文件夹:用于存放 webpack 相关配置和脚本. config 文件夹:主要存放配置文件,比如配置开发环境的端口号.开启热加载或开启gz ...

  7. &lbrack; 转载 &rsqb; vue&period;js面试题一

    转载自:https://www.cnblogs.com/aimeeblogs/p/9501490.html 如有侵权 联系删除 Vue.js面试题整理 一.什么是MVVM? MVVM是Model-Vi ...

  8. 【web前端面试题整理06】成都第一弹,邂逅聚美优品

    前言 上周四回了成都,休息了一下下,工作问题还是需要解决的,于是今天去面试了一下,现在面试回来了,我感觉还是可以整理一下心得. 这个面试题整理系列是为了以后前端方面的兄弟面试时候可以得到一点点帮助,因 ...

  9. 18家大厂Java面试题整理了350道(分布式&plus;微服务&plus;高并发)

    一.性能调优系列 1.Tomcat性能调优 JVM参数调优: -Xms 表示JVM初始化堆的大小, -Xmx表示JVM堆的最大值.这两个值的大小一般根据需要进行设置. 当应用程序需要的内存超出堆的最大 ...

  10. 2016 JS 笔试题汇总:

    1 1 1 CS&S(中软国际): 1 JavaScript 循环表达式: 2  JavaScript表达式boolean返回值: 3 网页中的事件/HTML 事件属性/JavaScript ...

随机推荐

  1. Uiautomator 2&period;0之BySelector类学习小记

    1. BySelector与By静态类 1.1 BySelector类为指定搜索条件进行匹配UI元素, 通过UiDevice.findObject(BySelector)方式进行使用. 1.2 By类 ...

  2. Google自己的下拉刷新组件SwipeRefreshLayout

    SwipeRefreshLayout SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support librar ...

  3. 使用ImageCreate&lpar;&rpar;创建一个代表空白图像的变量

    在建立图像创建环境之前,还需要做一些准备工作.首先,安装t1lib接着安装jpeg-6b,然后再安装GD库文件.在安装时一定要按这里给定的顺序进行安装,因为在编译GD入库时会用到jpeg-6b,如果没 ...

  4. mongodb副本集自动切换修复节点解决方案

    副本集部署 1.启动mongod 在每台运行mongod服务的机器上增加配置文件/etc/mongodb-rs.conf,内容为: [root@MongodbF-A etc]# vi /etc/mon ...

  5. linux磁盘管理系列-LVM的使用

    LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...

  6. Spring事务注意点

    service中未带事务的方法调用了自身带事务的方法时,按下面写法数据是提交不了的. public String getMaxSystemVersionNo() { SystemVersion ver ...

  7. Business Intelligence Tools We Recommend 1&sol;4 – Metabase

    May 24, 2018 by Arturs Oganesyan-Peel BI is useful. It’s pretty. But it never really matters unless ...

  8. 从 date 中取出 小时和分钟进行比较

    public class T1 { public static void main(String[] args) throws ParseException { SimpleDateFormat df ...

  9. SqlServer中的事务使用

    一.事务的概念和特点 事务(transaction)是恢复和并发控制的基本单位. 事务的特点 原子性:事务是一个工作单元,要都成功,要么的失败 例子:A付款给B,A余额-100,B余额+100,只能都 ...

  10. &lpar;转&rpar;wsdl文件用SoapUI快速创建WebService,CXF生成客户端代码

    原文地址:http://blog.csdn.net/fjekin/article/details/62234861 一.前言 最近项目接触到2C的很多接口,提供接口文档和WSDL文件,一开始测试接口都 ...