1. 算法题:一个n位数的字符,由0~9之间的随机数组成,如何把字符里所有为0的数,全部移动到字符的末尾显示?
//思路:用正则全局匹配,把为0的字符全部替换为空,再计算0的个数,添加到尾部即可let Number = '1002343400434';function getSort(str){ //把字符串里为0的数都替换成空 let str1 = str.replace(/0/g,''); //获取原始字符串的长度 let count = str.length; //获取去除0之后的字符串的长度 let count2 = str1.length; //两者之差就是字符为0的个数 let num0 = count - count2; //定义一个变量来代表字符末尾0的值 let sum = 1; //遍历为0的个数,有多少个就让多少个10相乘 for(let i=0;i<num0;i++){ sum = sum*10; } //最后把除去0的字符,乘以sum,即为最终的值 let res = str1 * sum; console.log(res);}getSort(Number);2. 说说闭包的含义?使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
闭包有三个特性:
1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收
3.说说你对原型链的理解? 每个构造函数都有一个porototype的属性,该属性指向一个对象,此对象可以被重新定义,实例化后的对象上都有一个__proto__的属性,该属性也指向原型对象, 原型对象上的属性和方法能被所有实例化对象所继承;4. 说说你对作用域链的理解? 作用域链的最前端始终是当前执行的代码所在环境的变量对象(如果该环境是函数,则将其活动对象作为变量对象),下一个变量对象来自包含环境(包含当前还行环境的环境), 下一个变量对象来自包含环境的包含环境,依次往上,直到全局执行环境的变量对象。全局执行环境的变量对象始终是作用域链中的最后一个对象。 大白话说意思就是:假如一个函数内要使用一个变量,但当前作用域里并没有声明此变量,那么它会跟随作用域链向上依次查找,先查找当前函数所处的作用域,如果没有再继续 向外层查找当前函数所处作用域的函数的所处作用域,直到全局执行环境的变量对象,全局执行环境的变量对象始终是作用域链中的最后一个对象;5. 说说你对VUE的理解? 1.组件化,便于维护和管理; 2.代码重用性高; 3.面向数据,做好数据的管理,vue底层自动做页面的渲染; 6. 如果在代码里直接用script标签引用一个域名,会不会存在跨域问题? 什么是同源策略?同源策略是由Netscape提出的的一个著名的安全策略,现在所有支持javascript的浏览器都会使用这个策略, 所谓同源就是指,域名、协议、端口号相同,当在一个浏览器打开两个网站的页面时,某一个网站在执行js脚本时会检查访问的资源是否属于本域范围, 只有本域范围内的资源才能被访问。 通过script标签跨域,我们通过xhr对象请求不同域上的资源是不可以的,但是却可以通过script标签引用不同域上的文件,jsonp就是利用这个来实现的。7. 事件捕获和事件冒泡?如果事件捕获和冒泡同时发生,会先处理哪个(事件流)? 先捕获阶段-->目标阶段-->冒泡阶段8. 在之前的项目中遇到过哪些问题? 1. 兼容性问题?----》说几个; 2. 跨域的问题; 3. 踩过的坑; 9. ajax的底层实现? 第一步:实例化ajax对象; 第二步:使用open方法,确定请求方式和路径; 第三步:使用send方法发送请求; 第四步:使用监听事件onreadystatechange(),判断状态码:readystate == 4 && status == 200;10. 响应状态码常见的都有哪些?分别是什么含义? 200 表示从客户端发来的请求在服务器端被正常处理了。 404 表示服务器端无法找到请求的资源。 500 表示服务器端在执行请求时发生了错误。 301 表示永久重定向。 302 表示临时重定向。11. 单页面应用?如果在单页面里做跳转用什么实现?转载于:https://www.cnblogs.com/Riona-C/p/9153243.html
相关资源:JAVA上百实例源码以及开源项目