前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js面试题系列003

js面试题系列003

作者头像
RobinsonZhang
发布2018-11-07 14:50:27
9930
发布2018-11-07 14:50:27
举报
文章被收录于专栏:达摩兵的技术空间

new操作符具体干了什么呢

1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 2、属性和方法被加入到 this 引用的对象中。 3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。

代码语言:javascript
复制
var obj  = {};
obj.__proto__ = Base.prototype;
Base.call(obj);

js延迟加载的方式

1 defer(等dom加载之后加载)和async(异步加载),仅可以在支持的浏览器进行使用 2 动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack 3 按需异步载入js

哪些操作会造成内存泄漏

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。 垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。 setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。 闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

WEB应用从服务器主动推送Data到客户端有那些方式

  • Javascript数据推送
  • Commet:基于HTTP长连接的服务器推送技术
  • 基于WebSocket的推送方案
  • SSE(Server-Send Event):服务器推送数据新方式

javascript对象的几种创建方式

1,工厂模式 2,构造函数模式 3,原型模式 4,混合构造函数和原型模式 5,动态原型模式 6,寄生构造函数模式 7,稳妥构造函数模式

js继承的几种方式

1,原型链继承 2,借用构造函数继承 3,组合继承(原型+借用构造) 4,原型式继承 5,寄生式继承 6,寄生组合式继承

严格模式的限制

  • 变量必须声明后再使用
  • 函数的参数不能有同名属性,否则报错
  • 不能使用with语句
  • 不能对只读属性赋值,否则报错
  • 不能使用前缀0表示八进制数,否则报错
  • 不能删除不可删除的属性,否则报错
  • 不能删除变量delete prop,会报错,只能删除属性delete global[prop]
  • eval不会在它的外层作用域引入变量
  • eval和arguments不能被重新赋值
  • arguments不会自动反映函数参数的变化
  • 不能使用arguments.callee
  • 不能使用arguments.caller
  • 禁止this指向全局对象
  • 不能使用fn.caller和fn.arguments获取函数调用的堆栈
  • 增加了保留字(比如protected、static和interface)

设立”严格模式”的目的

  • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
  • 消除代码运行的一些不安全之处,保证代码运行的安全;
  • 提高编译器效率,增加运行速度;
  • 为未来新版本的Javascript做好铺垫。
  • 注:经过测试IE6,7,8,9均不支持严格模式。

说说你对AMD和Commonjs的理解

CommonJS是服务器端模块的规范,Node.js采用了这个规范。CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。AMD规范则是非同步加载模块,允许指定回调函数。 AMD推荐的风格通过返回一个对象做为模块对象,CommonJS的风格通过对module.exports或exports的属性赋值来达到暴露模块对象的目的

mvvm的理解

Angular它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。核心就是viewModel的设定,可以实现响应的数据变化 组成部分Model、View、ViewModel View:UI界面 ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model; Model:数据访问层

请解释什么是事件代理

事件代理(Event Delegation),又称之为事件委托。是 JavaScript 中常用绑定事件的常用技巧。顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。使用事件代理的好处是可以提高性能。

在js针对css进行操作的时候,比如操作多个样式,是多个样式分别渲染还是计算之后渲染

js的执行引擎和渲染引擎是同步的,所以在js代码执行操作的时候渲染的部分不会发生变化,在操作完所有的样式之后才会在页面上进行样式的渲染。这也是为什么如果有js代码的下载和执行会阻塞页面的渲染的原因。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • new操作符具体干了什么呢
  • js延迟加载的方式
  • 哪些操作会造成内存泄漏
  • WEB应用从服务器主动推送Data到客户端有那些方式
  • javascript对象的几种创建方式
  • js继承的几种方式
  • 严格模式的限制
  • 设立”严格模式”的目的
  • 说说你对AMD和Commonjs的理解
  • mvvm的理解
  • 请解释什么是事件代理
  • 在js针对css进行操作的时候,比如操作多个样式,是多个样式分别渲染还是计算之后渲染
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档