· JS是什么?
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
Js(JavaScript)是一种直译式的脚本语言;是一种动态、弱类型的语言;是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。通常认为它是浏览器的一部分,它的解释器被称为JavaScript引擎,是客户端广泛应用的一种脚本语言。
· JS有何作用?
最早是在HTML网页上使用,用来给HTML网页增加动态效果,目前已经被广泛应用于Web应用程序开发,经常被用来为网页添加各种各样的动态功能,为用户提供更流畅美观的浏览效果。
· JS的常见的使用场景?
用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备,浏览器端,服务器端
· 如何在网页中使用JS?
1、HTML标签中内嵌JS(不提倡使用):
示例:<button
onclick="javascript:alert('你真点啊!')">有本事点我呀!!!
2、HTML页面中直接使用JS:
//JS代码
3、引用外部JS文件:
· JS的常用数据类型有?
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
· 引用类型和基础类型的区别?
① 引用类型值可添加属性和方法,而基本类型值则不可以。
② 在复制变量值时,基本类型会在变量对象上创建一个新值,再复制给新变量。此后,两个变量的任何操作都不会影响到对方;而引用类型是将存储在变量对象的值复制一份给新变量,但是两个变量的值都指向存储在堆中的一个对象,也就是说,其实他们引用了同一个对象,改变其中一个变量就会影响到另一个变量。
基本数据类型指的是简单的数据段。基本数据类型是按值访问的
引用数据类型指的是有多个值构成的对象。引用类型数据在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存中堆内存中的对象。
· 如何检测一个变量的类型?
typeof:确定变量是字符串、数值、布尔值还是undefined的最佳工具。
· JS中的分支方式有?
1、当条件满足时,去运行某些语句
if结构
2、当条件满足时,去运行某些语句
当条件不满足时,去运行另外一些一句
if ... else ...结构
3: else … if结构
4:switch-case结构: switch 语句用于基于不同的条件来执行不同的动作
· JS中常用的变量及区别?
变量是存储信息的容器:number, string, boolean, object, function, undefined
数值变量
文本(字符串)变量
布尔变量,
对象变量
函数变量
未定义的变量
· 截取字符串的方法有?
slice()、substring()、substr()这三种方法
· var letconst的区别?
var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
· JS中如何定义函数?
JavaScript 使用关键字function 定义函数。函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。
· 为何说JS中的函数也是对象?
在Javascript中,每一个函数实际上都是一个函数对象.
JavaScript 对象是拥有属性和方法的数据。
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
· JS中最常用的继承方式是?
原型链继承,构造函数继承,
组合继承是将原型链继承和构造函数结合起来,从而发挥二者之长的一种模式
原型式继承
寄生式继承
寄生组合式继承
· this是什么?常用指向和改变的方法有?
面向对象语言中 this表示当前对象的一个引用。
但在JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。
改变this指向的三个常用方法bind,call和apply
· ES5/ES6/ES7对异步编程处理的比较?
ES7的async和await,目前最为简略的异步解决方案
异步的几种实现方法
(1)回调函数
(2)事件监听
(3)发布订阅(类似于emit,on观察者模式)
(4)ES6的promise
· DOM的作用是?
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树:
HTML DOM 树
通过可编程的对象模型,JavaScript获得了足够的能力来创建动态的 HTML。
JavaScript 能够改变页面中的所有 HTML 元素
JavaScript 能够改变页面中的所有 HTML 属性
JavaScript 能够改变页面中的所有 CSS 样式
JavaScript 能够对页面中的所有事件做出反应
· DOM中获取元素的方法有?
通过 id 找到 HTML 元素
通过标签名找到 HTML 元素
通过类名找到 HTML 元素
· DOM是如何处理HTML中的常用事件的?
在HTML中的事件处理方式: 只要在按钮的地方加入onclick事件绑定点击事件处理的函数,就完成了事件处理。
DOM元素对象的属性事件绑定处理方式
DOM元素对象的addEventListener()函数添加事件的处理方式
· BOM的作用是是什么?
浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。
· BOM和DOM的关系是?
JavaScript是通过访问BOM(Browser Object Model)对象来访问、控制、修改客户端(浏览器),由于BOM的window包含了document,window对象的属性和方法是直接可以使用而且被感知的,因此可以直接使用window对象的document属性,通过document属性就可以访问、检索、修改XHTML文档内容与结构。因为document对象又是DOM的根节点。可以说,BOM包含了DOM(对象),浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档。
· BOM中常用的方法有?
alert():弹出一个警告对话框。
prompt([text],[defaulttext]):弹出一个输入对话框。
confirm(text):弹出一个确认对话框。如果单击“确定按钮”返回true,如果单击“取* * 消”返回false。 text:要显示的纯文本
close():关闭窗口
print():打印窗口
open([url],[name],[options]):打开一个新窗口
延时器:window.setTimeout(“code”,1000);// code一般是一个函数,但是放在双引号下,1000ms
返回值是延时器的id,给clearTimeout使用
定时器:window.setInterval(“code”,1000);// code一般是一个函数,但是放在”“下,1000ms
返回值是定时器的id,给clearInterval使用