1.什么是JS 特点是什么 组成部分?
JavaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的高级语言。
直译式:运行的时候将程序直接编译成机器语言
脚本语言:程序运行中逐行解析 不需要预编译
动态类型:声明一个变量后 能随时改变数据类型
弱类型:变量使用前不需要类型声明
简单性:它的变量名采用的弱类型
安全性:JS不允许直接访问本地地盘
动态性:JS可以直接对用户输入做出响应不需要经过web服务
跨平台性:JS仅依赖于浏览器本身 跟操作无关 支持js运行的浏览器就能正常运行
ECMAscript: JS的基本语法
DOM :文档对象模型 可以操作文档
BOM:浏览器对象模型 可以操作浏览器
2.JavaScript书写位置与CSS书写位置?有什么区别?为什么要这样写
CSS写在body上面
JS写在body结束标签之前
JS写在上面的话会阻止HTML运行会导致页面加载不出来
CSS写在下面会出现无样式闪烁
3.JavaScript输出数据的方式有哪些
InnerHTML
Innertext
Alert()
Document.write()
Window.prompt()
Widow.confirm
4.命名规则? 声明变量的方式以及区别?
字母开头
严格区分大小写
不能数字开头
不能用关键字
Var 有变量提升 和重复声明 全局
Let没有变量提升 不能重复声明 块级
Const 定义变量后不能更改 为常量 定义常量时声明 赋值必须同时进行
5.数据类型有几类?有哪些?判断数据类型的方法有哪些?
基本数据类型和引用数据类型
基本数据类型:number string boolean null undefined
引用数据类型:object array function
判断:type of array.isarray instanceof isnan
6.运算符有哪些 优先级是怎么样的?转换数据类型的方法?
算数运算符 递增和递减运算符 比较运算符 逻辑运算符 赋值运算符
小括号、数组下标、字段访问 一元运算符 算数运算符 关系运算符 相等运算符 逻辑运算符 赋值运算符
String()
Parse inter()
Parse float()
Number()
加号拼接
7.条件判断语句有哪些?语法?应用场景?
三元表达式 条件分支语句 循环语句
三元:条件1?成立2:不成立3
条件分支:switch(){}
For(){}
应用场景:所有要进行判断的都能使用
8.条件循环语句有哪些?语法?区别?
While(){}
Do {}while(){}
While和do while 执行循环循环的语句顺序不一样
9.数组的概念?创建数组的方法?区别?如何访问数组中的元素?数组中可以存哪些值
概念:数组是指一组有序数据的集合
创建方法:new 字面量
区别:new存的数值会报错
字面量传数字显示的是长度
访问:索引,下标来访问
数组中可以存哪些值 : 字符串 数字 布尔值 对象 数组 函数
10.数组中新增的方法有哪些 如何遍历数组?
新增:for...of for-each array.map array.reducel concat array.every
遍历:foreach for-of for() for...in
11.有哪些函数?区别? arguments是什么?闭包函数的优缺点?
函数:命名函数 匿名函数 自执行函数 闭包函数
区别:命名函数:通过 function声明函数
匿名函数:通过函数表达式定义
自执行函数 在程序运行时会自动执行不会被调用
Arguments:伪数组
闭包的优缺点: 优:封闭性 持久性
缺:会占内存资源 过多使用会导致内存溢出
12.return break continue的区别是什么
Return:可以终止当前代码 还能返回后面的值
Break:结束当前的循环体
Continue:跳出本次循环 执行下一次循环
13.作用域有哪些?预解析是什么?在什么时候触发?
1.全局作用域 块儿级作用域
2.在当前作用域下 JS代码执行前浏览器会默认把带有var和function声明的变量提前声明 定义
3.从上往下执行代码的时候
14.对象的概念?创建的方法?区别?如何访问对象的值?如何遍历对象?
概念:对象是一组无序的相关属性和方法的集合
创建:利用字面量创建对象 new object
区别:花括号能用键值对写
New不能用键值对写
访问对象:object.values
如何遍历对象: for.....in
15.什么是内置对象?有哪些内置对象?有多少种内置对象提供方法?
内置对象:就是JS自带的一些封装好的对象供开发者使用
有哪些内置对象:object array string number date document
有哪些方法:math对象 date对象 math.Random math.PI
16.DOM的概念?获取HTML元素的方法有哪些?
概念:当网页被加载时浏览器会创建页面的文档对象模型 简称DOM
document.getElementByid(‘id’)
Document.getElementsByTagName(‘name’)
Document.getElementsByClassName(‘class’)
Document.getElementsByName(‘name’)
Document.querySelector(‘css选择器’)
Document.querySelectorAII(‘css选择器’)
InnerHTML
17.改变HTML元素的方法有哪些?如何在HTML中添加 替换 或删除元素
元素.innerHTML = 内容
元素.属性
元素.style.样式
Document.createElement(‘标签名’)
父元素.replaceChild
父元素.removeChild
18.事件的类型都有哪些?绑定事件的方式有哪些?
类型: 鼠标 键盘 表单 焦点 触摸 窗口
绑定事件方式: HTML
Dom
AddEventListener
removeEventListener
事件委托
Target
匿名函数
19.事件对象是什么?什么是事件流?
事件对象是指在触发事件时 自动创建的对象
页面触发一个事件时 会按照一定的顺序来响应事件 事件的响应称为时间流
20.BOM的概念?跳转页面的方式有哪些?如何获取当前页面路径?
概念:是将一个浏览器个个组成部分封装成对象供调用使用
location.replace()
location.herf
window.open()
History.black()
21.定时器有哪几种?语法?如何清除定时器?
永久定时器 一次性定时器
Setinterval setTimeout
Setinterval(fucntion(){
},时间)
Clearinterval();
22.本地存储有哪些?有什么区别?常用的有哪些?
Cookie sessionStronge localStrong
区别: 存储大小 有效时间 数据与服务器之间的交互方式
Localstronge sessionStronge
Localstronge.getltem
Localstronge.setltem
Localstronge.removeltem
23.JSON的作用 提供了哪些方法 有什么用
作用:一种通用的数据格式,简化了数据交换和存储过程,提高了数据传输的效率和便捷性
方法:JSON.parse(转换成对象或数组) JSON.stringify(对象数组转换为JSON)
有什么用:
24.AJAX是什么 作用什么 交互流程有哪几个阶段
AJAX:是一种创建交互式网页应用的网页开发技术
作用: 网页加载后服务器请求数据 网页加载后服务器接收数据
流程: 创建AJAX对象
规定请求地址
等待服务器响应
服务器发送请求
28.数组的相关方法?字符串的相关方法?数字的?日期的?
数组: for...of for-each array.map array.reducel concat array.every
字符串:charAt(x) charcodeAt concat() repeat() value of()
数字:math.pi math.floor math.ceil math.abs math.max math.min
日期:getFullYear getMonth getDate getHours getMinutes getSeconds