前端面试题 -- JS篇

类型

1.js中有哪些数据类型,并解释清楚原始数据类型和引用数据类型

js中共有null,undefined, string,number,boolean,object六种数据类型。

原始数据类型: null,undefined, string,number,boolean

引用数据类型:object

两者的区别:

1)值存储方式不同:

原始数据类型:将变量名和值都存储在栈内存中

引用数据类型:将变量名存储在栈内存中,将值存储在堆内存中,并在栈内存中存储值的地址,该地址指向堆内存中的值。

2)赋值方式不同:

给一个变量赋予另一个变量的值

若值为原始数据类型,直接在栈内存中生成值,两个变量以后进行值改变不会相互影响

若值为引用数据类型,赋予变量的是值地址,通过这个地址,两者指向的其实是堆内存中的同一个值,某个变量对值进行改变,会直接影响另一个变量的值

 

2. 解释清楚 null 和 undefined

null表示一个标识被赋值了,且该标识赋值为“空值”,从逻辑角度来看,null值表示空对象指针

undefined表示声明了标识,但没有给标识赋值。

3. 如何复制一个引用类型的值?

4. js在什么时候会进行隐式类型转换,转换的结果?

5. 类型识别的方法?

typeof: 例子:(typeof 1 返回结果:"number"  typeof new Array() 返回结果:"object")可识别标准类型,除了null之外。不能识别具体的对象类型,除了function之外。

instanceof:例子:([] instanceof Array 返回结果:true   'a' instanceof String  返回结果:false)可以判别内置对象类型,不能判断原始类型值

constructor:例子('123'.constructor == String 返回结果:true)

Object.prototype.toString.call:例子(Object.prototype.toString.call(1) 返回结果:"[object Number]" )可以识别标准数据类型和内置对象类型。不能识别自定义对象类型

 

 

原型

1. 讲一下 prototype 是什么东西,原型链的理解,什么时候用 prototype

 

posted @ 2016-05-13 16:23  旷夜  阅读(1147)  评论(0)    收藏  举报