什么是深拷贝和浅拷贝,怎么理解?
浅拷贝 :只复制指向某个对象的指针,而不复制这个对象本身,新旧对象共享一块内存。 深拷贝 :复制并创建一个一模一样的对象,不共享内存,修改新对象旧对象不会变。
浅拷贝 :只复制指向某个对象的指针,而不复制这个对象本身,新旧对象共享一块内存。 深拷贝 :复制并创建一个一模一样的对象,不共享内存,修改新对象旧对象不会变。
箭头函数是在es6或更高版本中编写函数的表达式 箭头函数可以更简洁地定义函数,使用箭头(=>)符号来替代传统的function关键字。这种函数定义方式可以使代码更加简洁易读。
高阶函数是JS函数式编程的最佳特性。它是以函数为参数并返回函数作为结果的函数。一些内置的高阶函数是map、filter、reduce 等等。
1、都是用来改变函数执行时的上下文,再具体一点就是改变函数运行时的this指向 2、区别:参数书写方式不同 call(thisObj, arg, arg2, arg3); apply(thisObj, [args]); bind(thisObj,arg, arg2, arg3)(); //bind 返回的是一个新的函数,必须调用它才会被执行。
1、书写方式不同 2、箭头函数this所指的对象是上层函数作用域里this所指的对象 3、箭头函数不能用作变量提升 4、箭头函数没有构造函数不能实例化
1、相等运算符(==)是判断等号两边的值是否相等 2、完全相等运算符(===)是判断等号两边的值和类型是否相等
1、在判断一个变量是否存在时应该用typeof来判断。 2、当判断一个变量是否是数组类型时使用 instanceof 关键字而不是 typeof。 3、如何判断一个对象是否属于某个类使用instanceof。
函数防抖:是函数在特定的时间内不被再调用后执行。如果n秒内高频事件再次被触发,则重新计算时间。 事件场景: 1)点击按钮事件 2)输入框的自动保存事件 3)浏览器resize事件 函数节流:是确保函数特定的时间内至多执行一次。 事件场景 1)scroll事件,滚动的过程中每隔一段时间触发事件。
preventDefault()函数: a标签,radio、checkbox复选框等表单元素,div没有默认事件 stopPropagation()来阻止触发的事件
同源策略指的是:协议,域名,端口三者一致 同源策略的目的:是为了保证用户信息的安全,防止恶意的网站窃取数据 如果非同源,浏览器会进行什么限制? Cookie,LocalStorage和IndexDB 无法读取 Dom不能获得 ajax请求不能发送