JS面试题

1.什么是JavaScript?
JavaScript是一种客户端脚本语言,可以插入到HTML页面中,并且是目前较热门的Web开发语言。同时,JavaScript是基于对象的编程语言。
2.列举Java和JavaScript之间的区别?
Java是一门十分完整、成熟的编程语言。相比之下,JavaScript是一个可以被引入HTML页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。 Java是一种面向对象编程(OOPS)或结构化编程语言,类似的如C ++或C,而JavaScript是是基于对象的客户端脚本语言,它被称为非结构化编程。
3.JavaScript都有哪些数据类型
●number
●string
●boolean
●null
●undefined
●object (包括function 和 array)
4.typeof 返回值都有哪些
number — number
NaN — number
string — string
boolean — boolean
undefined — undefined
null ---- object
array — object
object — object
function — function
5.什么是未声明和未定义的变量?
未声明的变量是程序中不存在且未声明的变量。如果程序尝试读取未声明变量的值,则会遇到运行时错误。未定义的变量是在程序中声明但尚未给出任何值的变量。如果程序尝试读取未定义变量的值,则返回未定义的值。
6.局部变量与全局变量
1.使用var声明变量,在方法内部是局部变量,在方法外部是全局变量
2.没有使用var声明的变量,在方法内部或外部都是全局变量,但如果是在方法内部声明,在方法外部使用之前需要先调用方法,告知系统声明了全局变量后方可在方法外部使用。
在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量
在function外部, 不管有没有使用var声明变量,都是全局变量,在function外部,var关键字一般可以省略,但是为了书写规范和维护方便以及可读性好,不建议省略var关键字!
7. 说明 == 与 === 之间的区别
== 检查两个变量的值是否相等
=== 检查两个变量的值和数据类型是否相等
8.JavaScript中有哪几种弹出框
有3种. alert为警告窗口 confirm是确认窗口 prompt信息输入窗口
9、解释JavaScript中定时器的工作?如果有,也可以说明使用定时器的缺点?
定时器用于在设定的时间执行一段代码,或者在给定的时间间隔内重复该代码。这通过使用函数setTimeout,setInterval和clearInterval来完成。

●setInterval(function,delay函数用于在提到的延迟中重复执行给定的功能,只有在取消时才停止。
●setTimeout(function,delay函数用于启动在所述延迟之后调用特定功能的定时器。
●clearInterval(id)函数指示定时器停止。
定时器在一个线程内运行,因此事件可能需要排队等待执行。
10.JavaScript中break、continue和return的区别
在 javascript中break,continue和return 这三个关键字, 都有停止循环的功能,return 还有另外一个功能,就是函数返回语句,但是返回的同时也将函数停止。
下面介绍3个关键字在停止for循环中的区别:
①、break的用法
JS面试题
得到的结果是:
JS面试题
②、continue的用法
JS面试题
得到的结果是:
JS面试题
③、return的用法
JS面试题
得到的结果是:
JS面试题
总结:以上3个案例代码都是相同的,唯一的不同就是分别运用了break、continue和return这3个关键字来阻止for循环。显而易见:
break 停止了这个for循环,跳出循环来继续执行fn函数里之后的语句
continue 只是停止了当前循环,继续执行后面的循环,当循环执行完继续执行fn函数里之后的语句
return 停止了这个for循环,跳出循环并且停止执行fn函数里后边的语句
11.例举3种强制类型转换和2种隐式类型转换?
强制类型转换:自己通过函数来进行数据类型转换
举例:(parseInt,parseFloat,Number())
隐式类型转换:JS引擎自动帮我们转换的
举例:==、 console.log()、 alert() 、if() 、±*/
12.自执行函数?好处?用于什么场景?
(function(){
})
自执行函数:声明一个匿名函数并调用
好处:创建一个独立的作用域,防止污染全局
场景:一般用于框架、插件等场景。
13.js中this对象的指代
this对象在运行时基于函数的执行环境:
1.全局环境中 this指的是window对象
2.当前函数被当做某一个对象的方法时,函数中的this指的当前对象
3.在全局环境中,匿名函数中的this指向window
14. 节点的种类有几种,分别是什么?
(1)元素节点:nodeType ===1;
(2)属性节点:nodeType ===2;
(3)文本节点:nodeType ===3;
15.怎样创建、添加、移除、替换、插入、复制和查找节点?
1)创建新节点
  createDocumentFragment() //创建一个DOM片段
  createElement() //创建一个具体的元素
  createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
  appendChild() //节点后添加
  removeChild() //移除
  replaceChild() //替换
  insertBefore() //节点前插入
  cloneNode()/复制
  cloneNode(true)//连同子节点一起复制
3)查找
  getElementsByTagName() //通过标签名称
  getElementsByName() //通过元素的Name属性的值
  getElementById() //通过元素Id,唯一性