面试之路

面试被问到的

  1. 几种常用的console方法

      console.log(),console.table(),console.time()
    
  2. 深拷贝和浅拷贝的理解

      区别:
      	浅拷贝只是将原对象的引用复制给了新对象,与原对象共用一个内存空间,会跟随原对象变动
      	深拷贝是将原对象的引用复制给新对象并重新分配内存空间,独立于原对象。
      浅拷贝方法:
      	直接赋值
      	Object.assign({name:'ayuan',{name:'lele',age:3}}) => 输出结果 {name:'lele',age:3}
      深拷贝方法:
      	JSON.stringify(JSON.parase(json))  => 简单粗暴
      	js封装方法:
      		function deepCopy(p,c){
      			c = c || [];
      			for(const i in p) {
      				if (typeof p[i] === 'object') {
      					c[i] = Object.prototype.toSting.call(p[i]) ===[object Array]’ ? [] : {}
      					deepCopy(p[i],c[i])
      				}else{
      					c[i] = p[i]
      				}
      			}
      			return c
      		}
    
  3. web 离线存储

    	离线存储:cookie,localStorage,sessionStorage。
    	区别:
    		-   存储大小:cookie不能超过4k,localStorage和sessionStorage是5M
    		-   有效时间:cookie设置了有效时间后在有效时间内一直有效,即使关闭浏览器或关闭窗口也不会被删除;localStorage存储持久数据,浏览器关闭数据不丢失除非主动删除;sessionStorage数据不持久,关闭浏览器数据自动删除
    		-   与服务器之间的关系:cookie会将数据传递到服务端,服务端也可以修改客户端的cookie,localStorage和sessionStorage只是把数据保存到本地
    
  4. 数组常用的操作方法

    [外链图片转存失败(img-5MkDJsYu-1562596063455)(https://github.com/ayuan519/Blog-images/blob/master/source/ArrImg.png?raw=true)]

  5. 原型,原型链

    	prototype(原型),每个对象都会在自己的内部初始化一个原型。
    	当我们访问一个对象的某个属性时,对象的内部没有这个属性就会去prototype中寻找,没有找到会继续找自己上一级的prototype。这个查找的过程叫做原型链。
    	如果查不到返回undefined。
    
  6. call(),apply(),bind()的区别

    	首先这三个都是用来改变this指向的。
    	区别:call()和apply()第一个参数都是指定的对象,call之后的参数都是传入该函数的值,apply第二个参数是数组,数组中是函数执行需要的参数。
    	bind()的参数和call相同,不同的是bind改变this的指向后不会立即执行函数,其他两个是改变后立即执行的
    	tips:
    		使用bind()的时候最好不要直接绑定在dome上,以react为例最好在constructor中使用。避免当dome变化时需重新绑定,写法如下:
    
	[bind的优化写法](https://github.com/ayuan519/Blogimages/blob/master/source/bind()%E4%BC%98%E5%8C%96.png)
	
7. const定义的变量可以改变吗

	```bash
			const定义的变量是个常量不可修改,但是如果const定义了一个对象,可以改变对象里的属性
	```

8. 对Object.assign()的理解

	```bash
			Object.assign()合并对象,第一个参数是目标对象,剩余是源对象。
			如果多个源对象有相同属性,后边的原对象会覆盖前边的属性
	```


	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值