前端面试js

1.js特点

脚本语言:本身具有逻辑能力和行为能力
解释性语言:需要js解析器解析执行
弱类型语言:重复声明不报错,java是强类型语言
从上到下依次执行(解析顺序就执行顺序)
大小写敏感

2.数据类型:

(1)主要数据类型:string,boolean,number
(2)复合数据类型:function,object
(3)特殊类型:undefined,null

3.数据类型:

(1)6种不同的数据类型:string,number,boolean,object,function,symbol
(2)3种对象类型:object,array,date
(3)2个不包含任何值得数据类型:null, undefined

4.使用typeof查看js变量得数据类型

(1)nan的数据类型是number
(2)数组(array)的数据类型是object
(3)日期(date)的数据类型为object
(4)null的数据类型是object
(5)为定义变量的数据类型为undefined

array和date无法通过typeof来判断他们的类型,因为返回的都是object

5.使用instanceof判断对象的具体类型

用instanceof来判断类型只能用于对象层面,不是一个对象则不行;instanceof就是判断一个实例是否属于某种类型,更重要的是instanceof可以在继承关系中用来判断一个实例是否属于它的父类型

6.数据类型的转换

(1)转换为字符串:
将数字转换为字符串:全局方法String(); toString()
将布尔值转换为字符串:string()
将日期转换为字符串:String(); toString()
(2)转换为数字:
Number()可以将字符串、布尔值、日期转换为数字,字符串包含数字转换为数字;空字符串转换为0;其他的字符串转换为NaN(不是个数字)
"+"可用于将变量转换为数字,如果变量不能转换,它仍然会是一个数字,但值为NaN(不是一个数字)
getTime()也可以将日期转换为数字

7.undefined和null的区别:

undefined是未定,null是一个变量初始化,但是什么值都没有,只给一个空对象;undefined与null值相等,但类型不相同

8.==和===的区别:

==:先转换为同一数据类型再进行比较
===:先比较数据类型,数据类型不一致直接返回false

9.js的组成:

(1)ES5:核心js
(2)DOM:文档对象模型
(3)BOM:浏览器对象模型

10.DOM事件流

(1)描述的是从页面中接收事件的顺序
(2)事件捕获:从外向内
(3)事件冒泡:从内到外

11.事件绑定:

(1)Dom0:事件目标.ontype,解绑null
优点:兼容性好    缺点:不能给同一个dom对象绑定多个类型相同的事件
(2)dom2级事件:addEventListener()添加,解绑removeEventListener();
三个参数:事件类型,事件处理程序,true/false对应捕获/冒泡
优点:可以同时给一个元素绑定多个类型相同的事件        缺点:兼容性差

12.追加、删除、插入、替换节点的方法:

(1)appendChild()
(2)removeChild()
(3)insertBefore()
(4)replaceChild()

13.对象序列化和反序列化

(1)JSON.pares();将json字符串转换为对象
(2)JSON.stringify();将对象转换为json字符串

14.作用域:从函数内部向函数外部逐层访问

15.事件代理,解决方法:

(1)

你可能感兴趣的:(javascript)