1.JavaScript 是什么? JavaScript的组成 【考核知识点:JavaScript组成】
基于对象和事件驱动的客户端脚本语⾔
ECMAScript (语法) DOM(⽂档对象模型) BOM(浏览器对象模型)。
2 Js内容输出的三种方法?【考核知识点:js输出方法】
1 输出一个内容到控制台 console.log(123);
2 document.write("直接在网页中输出内容");
3用于弹出一个警告框 alert("警告框");
3.什么是标识符?以及标识符的规范是什么?【考核知识点:标识符规范】
标识符:开发人员为变量,属性,函数,参数取的名字
规范:
1 是有字母,数字,下划线_,美元符$
2 不能以数字开头
3 不能是js里的关键字和保留字
4 驼峰式命名法
4.JS运算符有哪些?【考核知识点:js运算符】
算术运算符
递增递减运算符
比较运算符
逻辑运算符
赋值运算符
5.For循环的执行过程。【考核知识点:for循环】
for(表达式1;表达式2;表达式3){
表达式4;
}
首先执行表达式1(一般为初始化语句),再执行表达式2(一般为条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行表达式4,否则,停止执行,最后执行表达式3.
5
continue和break的区别是什么。【考核知识点:break、continue】
一个是跳过当次循环
一个是结束循环
- while和do while 的区别是什么【考核知识点:while 、dowhile】
do while 至少执行一次 while 可能一次都不执行
do while 先执行再判断 while 先判断再执行
- 什么是流程控制?流程控制的三种结构有哪些?【考核知识点:流程控制】
流程控制就是控制代码按照一定结构顺序来执行。
流程控制三种结构:顺序结构,分支结构,循环结构。
- 数组元素的遍历 【考核知识点:数组元素的遍历】
普通for循环 - for(var i=0;i<arr.length;i++){}
for/in循环 - for(var a in arr){}
- 数组元素的读写。【考核知识点:获取何修改数组中的元素】
数组名[索引号]
- 函数的概念是什么?【考核知识点:函数的概念】
就是封装了一段可被重复调用执行的代码块,可以实现代码的重复使用。
- 如何声明一个函数?【考核知识点:函数的声明】
function 函数名(){
//函数体代码
}
function 是声明函数的关键字,必须小写
- 怎么调用一个函数?【考核知识点:函数的调用】
函数名()
函数不调用,自己不执行
- arguments的使用?【考核知识点:arguments的使用】
当你不确定有多少参数传递的时候,用arguments来获取
伪数组有以下特点
1 具有length属性
2 按照索引的方式存储数据
3 不具有数组的push,pop等方法
- 什么是作用域和局部作用域。【考核知识点:作用域】
作用域就是代码起作用的区域
作用于函数内的代码区域,就是局部作用域。
- 什么是作用域链。【考核知识点:作用域】
函数嵌套函数, 根据在**[内部函数可以访问外部函数变量]**的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作作用域链
简单来说:内部函数 通过就近原则查找到变量最终的值
- 说一下预解析的规则【考核知识点:预解析】
预解析:在当前作用域下, JS 代码执行之前,浏览器会默认把带有 var 和 function 声明的变量在内存中进行提前声明或者定义。
- 什么是对象 【考核知识点:对象概念】
对象是一组无序的相关属性和方法的集合, 所有的事物都是对象,例如字符串、数值、数组、函数等
- 为什么需要对象 。【考核知识点:对象的作用】
为了让更好地存储一组数据(多个值), 对象中为每项数据设置了属性名称,可以访问数据更语义化,数据结构清晰,方便开发者使用。
- 创建对象的三种方式。【考核知识点:对象的创建】
利用字面量创建对象 var obj={};
利用new Object创建对象 var obj =new Object();
利用构造函数创建对象 var obj = new 构造函数名(实参1,实参2,实参3)
- new关键字的作用【考核知识点:new对象的理解】
在构造函数代码开始执行之前,创建一个空对象;
修改this的指向,把this指向创建出来的空对象
执行函数的代码
在函数完成之后,返回this---即创建出来的对象
- 什么是内置对象?【考核知识点:什么是内置对象】
内置对象就是指 JS 语言自带的一些对象,提供了一些常用的属性和方法 帮助程序员快速开发。
- 说出5个以上Math对象中的成员。【考核知识点:Math】
Math.PI 圆周率
Math.floor() 向下取整
Math.ceil() 向上取整
Math.round() 四舍五入版 就近取整
Math.abs() 绝对值
Math.max()/Math.min() 求最大和最小值
Math.random() 获取范围在[0,1)内的随机值
- 什么是Date日期对象?【考核知识点:Date日期对象】
Date 实例用来处理日期和时间 ,Date是一个构造函数,需要实例化后 才能使用其中具体方法和属性。
- 什么是DOM。【考核知识点:DOM】
文档对象模型 , W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。
- 获取元素的方式有哪些。【考核知识点:获取元素】
getElemntById 通过id获取元素
getElementsByTagName 通过标签名获取元素
getElementsByClassName 通过类名获取元素
getElementsByName 通过Name属性获取元素
- 获取最后一个子节点和最后一个子元素节点 。【考核知识点:节点获取】
最后一个子节点:parentNode.lastChild
最后一个子元素节点:parentNode.lastElementChild
- 写出上一个兄弟节点以及上一个兄弟元素节点【考核知识点:节点获取】
上一个兄弟节点:元素.previousSibling
上一个兄弟元素节点:元素.previousElementSibling
- 删除节点。【考核知识点:删除节点】
node.removeChild() 方法从 node节点中删除一个子节点,返回删除的节点。
- innerText和innerHTML的区别?
获取内容时的区别:
innerText会去除空格和换行, 而innerHTML会保留空格和换行
设置内容时的区别:
innerText不会识别html标签, 而innerHTML会识别
- 什么是location对象。【考核知识点:获取元素】
Location 对象包含有关当前 URL 的信息。
Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。
- Location对象的常见方法有哪些。【考核知识点:获取元素】
assign() 载入一个新的文档
reload() 重新载入当前文档
replace() 用新的文档替换当前文档
- offset与style 的区别 【考核知识点:offset系列属性概念】
offset 可以得到任意样式表中的样式值
offset 系列获得的数值是没有单位的
offsetWidth 包含padding+border+width
offsetWidth 等属性是只读属性,只能获取不能赋值
style 只能得到行内样式表中的样式值
style.width 获得的是带有单位的字符串
style.width 获得不包含padding和border 的值
style.width 是可读写属性,可以获取也可以赋值
- 列举5个offset系列属性。【考核知识点:元素偏移offset】
元素.offsetParent、
元素.offsetTop、
元素.offsetLeft、
元素.offsetWidth、
元素.offsetHeight
- 列举4个client系列属性 。【考核知识点:元素可视区client】
元素.clientLeft、
元素.clientTop、
元素.clientWidth、
元素.clientHeight
- 回调函数原理是什么?【考核知识点:回调函数】
回调函数原理: 函数可以作为一个参数。 将这个函数B作为参数传到函数A里面,当那个函数A执行完之后,再执行传进去的这个函数B,这个过程就叫做回调。
- 本地存储的特性【考核知识点:本地存储】
1、数据存储在用户浏览器中
2、设置、读取方便、 页面刷新不丢失数据
3、容量较大,sessionStorage约5M、localStorage约20M
4、只能存储字符串
- 列出一些内置方法及其返回的值。?【考核知识点:内置函数】
任意一些内置方法 都可以 : 比如数组的方法、字符串的方法、Math、......
charAt() 它返回指定索引处的字符。
concat() 它连接两个或多个字符串。
forEach() 它为数组中的每个元素调用一个函数。
indexOf() 它返回指定值第一次出现时调用字符串对象中的索引。
length() 它返回字符串的长度。
pop() 它从数组中删除最后一个元素并返回该元素。
push() 它将一个或多个元素添加到数组的末尾,并返回数组的新长度。
reverse() 反转数组元素的顺序。
- JS 中“this”运算符的用途是什么?【考核知识点:this】
this 谁调用 this就指向谁
在方法中,这指的是所有者对象,
而在普通函数中,这指的是全局对象。
而在事件中, 给谁绑定的事件 this就指向谁
- 声明定时器和销毁定时器,两者之间的区别是什么?
声明定时器:setTimeout() 、setInterval()
销毁定时器:clearTimeout()、clearInterval()
setTimeout()是延迟时间到了之后,就回去回调函数,只会调用1次,就结束这个定时器
setInterval() 每隔一段延迟时间,就会去调用回调函数,会持续的去调用
- 数组的常⽤⽅法有哪些?怎么使用?(至少说出5个)
push() 末尾添加
pop() 末尾删除
unshift() 头部添加
shift() 头部删除
splice() 对数组进⾏删除、添加、替换等
join() 数组转字符串
sort() 数组排序
indexOf lastIndexOf 查找
reverse() 数组翻转
slice()截取
- JavaScript的数据类型都有哪些 【考核知识点:基本数据类型】
Number 数值
String 字符串
Boolean 布尔值
Undefined 未定义
Null 空
复杂数据类型: 对象 (数组,函数)
- 字符串常用的方法都有哪些?怎么使用?
根据字符串 返回索引位置 indexof lastIndexOf
根据位置返回字符 charAt()
字符串拼接 concat()
截取字符串slice()
替换 replace()
转数组 split()
- 如何去判断js数据类型?
typeof 数据
返回值:number、 string、boolean、undefined、object、 function
- JS中的substr()和substring()函数有什么区别?
substr()第二个参数是截取的长度 substring()第二个参数是结束的索引
- 类型怎么实现相互转换(至少说出两种)
字符串转为数值 *1 /1 -0 或者 Number()parseInt()
数值转为字符串 +空字符串 toString() String()
- 如何对数组进行排序?
数组名.sort(function(a,b){return a- b})
- 什么是作用域和局部作用域
作用域就是代码起作用的区域
作用于函数内的代码区域,就是局部作用域。
- 数组去重的实现,说出如何实现以及⽤到哪些语句和⽅法【考核知识点:数组去重】
新建⼀个空的结果数组,for 循环原数组,判断新数组是否存在当前元素,如果有相同的值则跳 过,不相同则push添加进新数组,⽤到indexOf()⽅法 、for循环、if判断等
- 如何实现对象的遍历?
for/in循环 - for(var a in arr){}
- 什么是函数的返回值?【考核知识点:函数返回值】
return语句
返回值:函数执行完成后,通过return语句将指定的数据返回。
- 日期对象的方法都有哪些?
getFullYear() 获取年
getMonth()获取月
getDate();获取日
getDay()获取星期
getHours();获取小时
getMinutes()获取分钟
getSeconts()获取分钟
- ”==”和“===”的不同?
前者会自动转换类型,再判断是否相等
后者不会自动类型转换,直接去比
比如:
console.log(10 == '10'); // == 只会比较值 不比较数据类型
console.log(10 === '10'); // === 值 、数据类型 都比较
- 请说出三元表达式的语法以及执行思路?【考核知识点:三元表达式】
语法:表达式1 ? 表达式2 : 表达式3;
思路:如果表达式1为true,返回表达式2的值;
如果表达式1 为false,返回表达式3的值。
- 获取元素的方式有哪些。【考核知识点:获取元素】
getElemntById 通过id获取元素
getElementsByTagName 通过标签名获取元素
getElementsByClassName 通过类名获取元素
getElementsByName 通过Name属性获取元素
querySelect()
querySelectAll()
- 本地存储Localstorage和Sessionstorage有什么区别,怎么使用?
setItem(key, value) 设置
getItem(key) 获取
removeItem(key)移除一个
clear() 清除所有
Sessionstorag:
生命周期为关闭浏览器窗口
在同一个窗口(页面)下数据可以共享
Localstorage:
生命周期永久生效,除非手动删除 否则关闭页面也会存在
可以多窗口(页面)共享(同一浏览器可以共享)
- 如何实现JS对象和JSON的相互转换?
JSON.parse() json数据转为js对象
JSON.stringify() js对象转为json对象
- Js如何定义事件,都有哪些事件类型?
事件三要素有哪些【考核知识点:事件】
事件源 、事件类型 、事件处理函数
键盘事件
鼠标事件
触屏事件
- 简述javascript中this的指向?
this 谁调用 this就指向谁
在方法中,这指的是所有者对象,
而在普通函数中,这指的是全局对象。
而在事件中, 给谁绑定的事件 this就指向谁
- Js阻止事件冒泡与阻止默认事件阻止默认事件
阻止默认行为:
e.preventDefault();
return false;
阻止冒泡: e.stopPropagation();
- Switch语句和if else if 语句的区别?
当分支比较少时,if else语句的执行效率比switch高
当分支比较多的时候,switch的执行效率比较高,而且结构更清