美文网首页
javascript面试题

javascript面试题

作者: 岚平果 | 来源:发表于2019-03-16 11:26 被阅读0次

数据类型

  • 1.有哪几种数据类型
  • 2.说说基本数据类型和引用数据类型的不同
  • 3.如何检测数据类型
  • 4.如何检测对象,是哪种对象。以及检测原理
  • 5.String如何转Number类型
    1. null和undefined有什么区别

语句

  • 1.请问下面这段代码,将打印出什么
for (var i=0; i < 10; i++) {
  setTimeout(function () {
    console.log(i);
  }, 1000)
}
  • 2.如何改善上面这段代码的问题
  • 3.如何循环遍历一个对象
  • 4.break和continue的区别

内存泄漏

  • 1.什么是内存泄漏
声明函数和变量,是会占用内存的。一般情况,内存会自动清楚垃圾,现在不用的变量。当有些变量无法被清楚的时候,称之为内存泄漏。

数组

  • 1.数组去重;写一个函数,给下面数组去重
var arr = [1,2,3,4,5,1,2,3]
  • 2.数组排序:写一个函数,给下面数组,按价格升序排序
var arr = [{name:'apple', price:9}, {name:'orange', price:2}, {name:'banner', price:5}]
  • 3.数组找成员位置:找出下面数组price为5的成员索引值
var arr = [{name:'apple', price:9}, {name:'orange', price:2}, {name:'banner', price:5}]
  • 4.操作数值有哪些方法
1. push 向数值后面追加成员
2. pop 删除数值最后一位成员
3. unshift 向数值前面添加成员
4. shift 删除数值最前面一位成员
5. splice 添加或删除数组中的元素(最好用的方法)
6. sort 数值排序
7. reverse 反转数组
------------------------------------------------
8.forEach 遍历数值每个成员
9.map 数值映射,返回一个新数值,和原数组成员,一对一
10.filter 数组过滤 return true。返回我们需要的成员,组成一个新数组

Date类型

    1. 日期时间如何比大小
    1. 日期时间对象如何转时间戳,时间戳如何转日期时间对象
    1. 设置一个当前时间往后推一个月的日期时间对象

正则表达式

String

1、字符串截取有哪些方法
2、查找字符串位置方法,有哪些方法

Math和Number

1.写一个函数,返回10-30的随机数
2.Math.ceil(num)向上取整
3.Math.ceil(num)向下取整
4.Math.ceil(num)四舍五入

面向对象

  • 1.对象原生自带哪些方法
  • 2.说说原型链的理解

函数

  • 1 .什么是闭包
    1. 函数作用域的理解
    1. 函数递归
    1. 关于函数this指向的理解
    1. 聊一聊call、apply、bind的区别
window.color = 'blue';
var obj = {
  color: 'red',
  sayColor(otherColor) {
    alert(this.color + otherColor);
  }
}
obj.sayColor('yellow');

obj.sayColor.call(this, 'yellow');

obj.sayColor.apply(this, ['yellow']); // 怎么记,applay和arr很像,参数是arr

var say = obj.sayColor.bind(this, 'yellow');
say();

BOM

  • 1.window下有几种对象
location
history
navigator
document

document

    1. 获取元素,有哪几种方法
getElementById、getElementsByTagName、getElementsByName、getElementsByClassName
    1. 获取浏览器宽高
let _width = document.documentElement.clientWidth || document.body.clientWidth
let _height = document.documentElement.clientHeight || document.body.clientHeight

事件

  • 1.如何用原生js给一个按钮绑定点击事件?
  • 2.如何阻止事件冒泡、事件默认行为
  • 3.谈谈事件委托

ajax

  • 1.什么是ajax?
    ajax(异步javascript xml) 能够刷新局部网页数据而不是重新加载整个网页。Form表单会刷新整个网页
  • 2.如何使用ajax
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.send(null);
xhr.onreadystatechange = () => {
  if (xhr.readyState==4 && xhr.status==200) {
    // ...
  }
}

JSON

    1. JSON对象如何转JSON字符串
    1. JSON字符串如何转JSON对象
    1. JSON和XML的区别
XML类似html一样,处理比较麻烦,数据比较大。JSON处理数据更方便,数据更清晰,数据大小也更小

本地存储

  • 1.有几种本地存储方法
  • 2.请描述一下 cookies sessionStorage和localstorage区别
    相同点:数据都存储在本地电脑硬盘
    不同点:
    1.存储大小
    · cookie数据大小不能超过4k。
    · sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
    2.有效时间
    · localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
    · sessionStorage 数据在当前浏览器窗口关闭后自动删除。
    · cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
  1. 数据与服务器之间的交互方式
    · cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端
    · sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

相关文章

网友评论

      本文标题:javascript面试题

      本文链接:https://www.haomeiwen.com/subject/ravjmqtx.html