这期内容当中小编将会给大家带来有关前端JavaScript有哪些面试题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
JavaScript面试题集锦
1. JS基础
1. eval是做什么的?
,它的功能是把对应的字符串解析成JS代码并运行;
,应该避免使用eval,不安全,非常耗性能(2次,一次解析成JS语句,一次执行)。
,由JSON字符串转换为JSON对象的时候可以用eval, var obj=eval (& # 39; (& # 39; + str + & # 39;) & # 39;);
2。什么是窗口对象吗?什么是文档对象?
,窗口对象是指浏览器打开的窗口。
,文档对象是文档对象(HTML文档对象)的一个只读引用,窗口对象的一个属性。
3。空,未定义的区别?
, null ,,表示一个对象是“没有值”的值,也就是值为“空”;
, undefined ,,表示一个变量声明了没有初始化(赋值),
,未定义的不是一个有效的JSON,而零是;
,未定义的类型(类)是未定义的;
,空的类型(类)是对象;
, Javascript将未赋值的变量默认值设为未定义的;
, Javascript从来不会将变量设为null。它是用来让程序员表明某个用var声明的变量时没有值的。
,“未定义的
,,//皍ndefined"
,,定义:是一个表示,无“的原始值或者说表示“缺少值“,就是此处应该有一个值,但是还没有定义。当尝试读取时会返回未定义的;
,,例如变量被声明了,但没有赋值时,就等于未定义的
,“空
,,//皁bject"
,,空:是一个对象(空对象,没有任何属性和方法),
,,例如作为函数的参数,表示该函数的参数不是对象,
,注意:
,,在验证空时,一定要使用===,因为==无法分别空和未定义的
,,null==定义//真正的
,,null===定义//假
,再来一个例子:
null ,,,问:有张三这个人么? ,,,答:有! ,,,问:张三有房子么? ,,,,没有! ,,,定义 ,,,问:有张三这个人么? ,,,答:有! ,,,问:,张三有多少岁? ,,,,,不知道(没有被告诉)
(“1”,“2”,“3”) . map(方法)答案是多少吗?
,方法用于()函数能解析一个字符串,并返回一个整数,需要两个参数(val,基数),
,其中基数表示要解析的数字的基数。【该值介于2 ~ 36之间,并且字符串中的数字不能大于基数才能正确返回数字结果值】;
,但此地图处传了3个(元素、索引数组),我们重写方法函数测试一下是否符合上面的规则。
,function 方法(str,基数),{ ,,,,return str + & # 39; & # 39; +基数; ,},
, var a=(“1”,“2”,“3”);
, a.map(方法),,//(“1-0",“2-1",“3-2"]不能大于基数
,因为二进制里面,没有数字3,导致出现超范围的基数赋值和不合法的进制解析,才会返回南
,所以(“1”,“2”,“3”). map(方法)答案也就是:[1、南南]
5。事件是吗?即与火狐的事件机制有什么区别?如何阻止冒泡?
1。我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被JavaScript侦测到的行为。
2。事件处理机制:即是事件冒泡,Firefox同时支持两种事件模型,也就是:捕获型事件和冒泡型事件;
3。ev.stopPropagation();(旧ie的方法ev。cancelBubble=true;)
6。javascript代码中的“使用strict";是什么意思?使用它区别是什么?
,严格使用是一种ECMAscript 5添加的(严格)运行模式,这种模式使Javascript在得更严格的条件下运行,
,使JS编码更加规范化的模式,消除Javascript语法的一些不合理,不严谨之处,减少一些怪异行为。
,默认支持的糟糕特性都会被禁用,比如不能用,也不能在意外的情况下给全局变量赋值;
,全局变量的显示声明,函数必须声明在顶层,不允许在非函数代码块内声明函数,arguments.callee也不允许使用;
,消除代码运行的一些不安全之处,保证代码运行的安全,限制函数中参数的修改,严格模式下的eval函数的行为和非严格模式的也不相同,
,提高编译器效率,增加运行速度;
,为未来新版本的Javascript标准化做铺垫。
7. Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是吗?
, hasOwnProperty
, Javascript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。