前端面试题目

1.理解事件原理。es6

首先什么是事件,事件就是事件是用户或浏览器自身执行的某种动做,如click,load和mouseover都是事件的名字。 那么什么是DOM事件流,事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所通过的全部节点都会收到该事件,这个传播过程即DOM事件流。 DOM2级事件规定事件流包括三个阶段:事件捕获阶段,处于目标阶段,事件冒泡阶段; 在事件监听流中可使用event.stopPropagation()来阻止事件继续往下流数组

2.ES6浏览器

(1)let和const的异同点服务器

相同点:let和const只在声明所在的块级做用域内有效;不提高,同时存在暂时性死区,只能在声明的位置后面使用;不可重复声明;
         不一样点:let声明的是变量;const声明的是常量。
复制代码

(2)箭头函数 ()=>cookie

箭头函数没有函数提高
         箭头函数没有this,他会捕获其所在上下文的this值,做为本身的this值
         箭头函数不绑定arguments,取而代之用rest参数
         箭头函数不能做为构造函数,不能被new,没有property
         call和apply方法只有参数,没有做用域
复制代码

(3)模板字符串 使用反引号``,模板字符串中的变量使用${}处理;session

const a = `hello+${memory.data}`
复制代码

(4)解析结构app

// 首先有这么一个对象
复制代码

const props = { className: 'tiger-button', loading: false, clicked: true, disabled: 'disabled' }函数

// es5
复制代码

var loading = props.loading;this

var clicked = props.clicked;es5

// es6解析结构写法
复制代码

const { loading, clicked } = props;

// 给一个默认值,当props对象中找不到loading时,loading就等于该默认值
复制代码

const { loading = false, clicked } = props;

//数组也有本身的解析结构
          // es6
复制代码

const arr = [1, 2, 3];

const [a, b, c] = arr;

// es5
复制代码

var arr = [1, 2, 3];

var a = arr[0];

var b = arr[1];

var c = arr[2];

3.js中split,map,join方法

string.split()方法用于将字符串分割为字符串数组
         “hello”.split("") === ["h", "e", "l", "l", "o"]
         
         map()方法生成一个新的数组,arr.map(方法),原数组经过map括号中提供的方式生成新的数组,此方法不改变原数组
         var data = [1, 2, 3, 4];
         var  newData = data.map(function(i){return i*i});
         console.log(newData);   // [1,4,9,16]
         
         join()方法用于将数组中的元素放到一个字符串中
         ["h", "e", "l", "l", "o"].join('') === 'hello'
复制代码

4.Cookie,sessionStorage,localStorage的异同点

共同点:都储存在浏览器端,同源
         不一样点: a.cookie在浏览器和服务器之间来回传输;sessionStorage,localStorage仅在本地保存,不会自动把数据发送给服务器;
                 b.存储大小限制不一样,cookie不超过4k,sessionStorage,localStorage能够达到5M或更大
                 c.数据有效期不一样,cookie在设置的过时时间以前有效;sessionStorage仅在当前浏览器关闭以前有效;localStorage始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据
                 d.做用域不一样:sessionStorage不在不一样的浏览器窗口中共享,即便是同一个页面;localstorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的 
复制代码

5.如何获悉一个对象的具体类型

typeOf,instanceof,contructor
复制代码

6.js中的prototype属性

原型属性prototype使得您有能力向对象添加属性和方法
          对于原型来讲,最重要的一点是理解它的‘实时’性。因为js中,几乎全部的对象都是通
          过引用的方式传递的,所以咱们所建立的每一个新对象实体中并无一份属于本身的原型副本,这也就意味着
          咱们能够随时修改prototype属性,而且由同一构造器建立的全部对象的prototype属性也都会
          同时改变(甚至会影响在修改以前就已经建立的那些对象)复制代码
相关文章
相关标签/搜索