2017深圳web前端开发面试笔试题
来源:互联网 发布:看电视用什么软件 编辑:程序博客网 时间:2024/06/18 14:40
题目&答案
- 介绍一下 JS 的基本数据类型。
Undefined、Null、Boolean、Number、String
- 介绍一下 JS 有哪些内置对象。
Object 是 JavaScript 中所有对象的父对象数据封装类对象:Object、Array、Boolean、Number、String
其他对象:Function、Argument、Math、Date、RegExp、Error
- 介绍一下 JavaScript 原型,原型链,它们有何特点?
每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链的概念。关系:instance.constructor.prototype = instance.__proto__//特点:JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本,当我们修改原型时,与之相关的对象也会继承这一改变。//当我们需要一个属性时,JavaScript引擎会先看当前对象中是否有这个属性,如果没有的话,就会查找它的prototype对象是否有这个属性,如此递推下去,一致检索到Object内建对象。function Func(){}Func.prototype.name = "Xiaosong";Func.prototype.getInfo = function() { return this.name;}var person = new Func();console.log(person.getInfo());//"Xiaosong"console.log(Func.prototype);//Func { name = "Xiaosong", getInfo = function() }
- JavaScript 有几种类型的值?能否画一下它们的内存图?
栈:原始数据类型(Undefined,Null,Boolean,Number,String)堆:引用数据类型(对象、数组、函数)两种类型的区别:存储位置不同//原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。
- JavaScript 如何实现继承?
(1)构造继承(2)原型继承(3)实例继承(4)拷贝继承//原型prototype机制或apply和call方法去实现较简单,建议使用构造函数与原型混合方式。function Parent() { this.name = 'song';}function Child() { this.age = 28;}Child.prototype = new Parent(); //通过原型,继承了Parent//var demo = new Child()l;alert(demo.age);alert(demo.name); //得到被继承的属性
- JavaScript 有哪几种创建对象的方式?
javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON;但写法有很多种,也能混合使用。//(1)对象字面量的方式person={firstname:"Mark",lastname:"Yun",age:25,eyecolor:"black"};(2)用function来模拟无参的构造函数function Person(){}var person = new Person(); //定义一个function,如果使用new"实例化",该function可以看作是一个Classperson.name = "Xiaosong";person.age = "23";person.work = function() { alert("Hello " + person.name);}person.work();(3)用function来模拟参构造函数来实现(用this关键字定义构造的上下文属性)function Person(name,age,hobby) { this.name = name; //this作用域:当前对象 this.age = age; this.work = work; this.info = function() { alert("我叫" + this.name + ",今年" + this.age + "岁,是个" + this.work); }}var Xiaosong = new Person("WooKong",23,"程序猿"); //实例化、创建对象Xiaosong.info(); //调用info()方法(4)用工厂方式来创建(内置对象)var jsCreater = new Object();jsCreater.name = "Brendan Eich"; //JavaScript的发明者jsCreater.work = "JavaScript";jsCreater.info = function() { alert("我是"+this.work+"的发明者"+this.name);}jsCreater.info();(5)用原型方式来创建function Standard(){}Standard.prototype.name = "ECMAScript";Standard.prototype.event = function() { alert(this.name+"是脚本语言标准规范");}var jiaoben = new Standard();jiaoben.event();(6)用混合方式来创建function iPhone(name,event) { this.name = name; this.event = event;}iPhone.prototype.sell = function() { alert("我是"+this.name+",我是iPhone5s的"+this.event+"~ haha!");}var SE = new iPhone("iPhone SE","官方翻新机");SE.sell();
- eval 是做什么的?
它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,因为不安全,非常耗性能(2次,一次解析成js语句,一次执行)。
阅读全文
0 0
- 2017深圳web前端开发面试笔试题
- 前端面试笔试题
- 前端面试笔试题
- 前端面试笔试题
- Web前端开发面试题
- WEB前端开发面试题
- web前端面试题、web前端开发面试题
- 部分前端面试笔试题汇总
- Web前端面试笔试题——null和undefined有什么区别么?
- 阿里巴巴web前端开发面试题
- 某公司Web前端开发面试题
- WEB前端开发工程师面试题(一)
- Web前端开发面试题2
- Web前端开发面试题系列一
- Web前端开发面试题赋答案
- web前端开发工程师面试题大全
- WEB前端初级开发面试题归纳
- web前端开发工程师-面试题汇总
- mark JVM性能调优之生成堆的dump文件
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- Tomcat服务器执行一段时间后,报错Error parsing HTTP request header
- 用于排序的sort方法
- 1066慰问演出
- 2017深圳web前端开发面试笔试题
- spring boot解决第三方jar包依赖的问题
- 洛谷P2061 [USACO07OPEN]城市的地平线City Horizon
- Linux Android bashrc 配置
- linux:进程创建及父子间使用pipe通信
- [NOI2002]Sevege 扩展欧几里得
- opencv学习——cv2.imshow()显示图片
- 微信小程序框架wxml(四)wxml模板
- 一个项目:SSM的配置文件