js面试题

get和post有什么区别?

1.GET把参数包含在URL中,POST通过request body传递参数
2.GET在浏览器回退时是无害的,而POST会再次提交请求
3.GET请求会被浏览器主动cache,而POST不会,除非手动设置
4.GET请求只能进行url编码,而POST支持多种编码方式
5.GET请求在URL中传送的参数是有长度限制的,而POST没有
6.GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息

数组遍历的方法

  • filter( )
    即对数组中的每一项运行给定函数,然后返回该函数会返回true的项。这个方法是用来过滤数组项的
  • forEach
    对数组的每一项运行给定函数。forEach方法是唯一一个没有返回值的,纯粹用来遍历数组。
  • every( )
    对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则every( )返回true。
  • some( )
    对数组的每一项运行给定函数,如果该函数对任一项返回true,则some( )就返回true。some和every就像 || 和 &&,some是只要有一项满足,就返回true
  • map( )
    对数组的每一项运行给定函数,返回每次函数调用的返回值组成的数组。map方法就是有返回值的forEach方法
  • for...of
    ES6借鉴了Java、Python等语言,引入了for...of循环。for...of主要用来统一ES6多种数据结构的遍历方法,不仅可以遍历数组,还可以遍历Map、Set这两种ES6新推出的数据结构。只要具有iterator接口的数据结构,就可以用for...of循环来遍历。还可以遍历某些类似数组的对象,比如arguments对象、DOM NodeList 对象。

闭包

  • 定义:闭包(closure)指有权访问另一个函数作用域中变量的函数。简单理解就是,一个作用域可以访问另一个函数内部的局部变量
  • 作用:延伸了变量的作用范围,减少创建全局变量,减少传递给函数的参数量

js垃圾回收机制

JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的内存

js数据存储方式

javaScript有三种数据存储方式,分别是:
1.sessionStorage
2.localStorage
3.cookier
相同点:都保存在浏览器端,同源的
不同点:
①传递方式不同

  • cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
  • sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
    ②数据大小不同
  • cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
    存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
  • sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
    ③数据有效期不同
  • sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
  • localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
  • cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
    ④作用域不同
  • sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
  • localStorage 在所有同源窗口中都是共享的;
  • cookie也是在所有同源窗口中都是共享的。
    Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。
    Web Storage 的 api 接口使用更方便。

ajax的原理

Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据

你可能感兴趣的:(js面试题)