JavaScript基础知识复习
-
JavaScript包含:
- ECMAScript:规定js的语法规范;
- DOM:Document Object Model,提供了一套操作dom元素的API(application programming interface);
- BOM:浏览器对象模型,操作浏览器对象的api。
JavaScript的基本数据类型有:number、string、boolean、undefined。
-
JavaScript的复杂数据类型(引用类型)有:Array、Date、Object、Regexp、Function、String、Number、Boolean;两个核心类型:Object、Function;还有两个空类型:undefined、null(object类型)。
- 变量不可能为null值,除非手动去设置,解除对象的占用(引用)。
获取一个数据的数据类型:
typeof xxx;
,使用该运算符返回的结果是string类型。-
JavaScript中 === 和 == 有什么区别:
- ==:判断值是否相等;
- ===:判断值和类型是否都相等。
-
JavaScript中in运算符有什么作用:
- 最常用在for in循环中,遍历对象的键(对象中键为字符串类型);
- 判断属性是否存在于对象中,语法
属性名 in 对象;
(属性名应该是字符串); - 注意:in关键字操作数组时,获取到的是索引值(下标),不是值;判断数组中是否存在指定值:用for循环、arr.indexOf(xxx)。
JavaScript中关系运算符有:>=、<=、>、<、=。
创建对象使用什么运算符:new。
-
什么是引用类型:存储的是数据在内存中的地址,数据在内存中单独存储,这就是引用类型数据;
-
什么是值类型:存储的就是数据本身的变量就是值类型。
- 所有引用类型的类型都是object类型,除了function打印出来的是function类型。
- 变量一般存储在内存中;
- 引用类型赋值:是将变量中存储的地址复制一份单独存储,但是两个变量共享同一个地址;通过一个变量修改对象中的内容,另外一个引用访问的时候,也会访问到修改后的对象。
-
做函数参数:
- 值类型做函数的参数:函数内部的变量,也就是形参,和实参只是简单的赋值操作,两个数据独立存储于内存中;在函数内部对形参进行修改,不会影响外面的变量。
- 引用类型做函数的参数:是把实参存储的地址赋值给了形参,在函数内部,形参同样也指向该对象,所以在函数内部对该对象进行修改,会影响到外面的变量。
注:如果引用类型做函数的参数时,如果在函数内部重新创建对象,为该形参赋值,那么两个对象将不再有关系,修改其中一个,另外一个不会受到影响。
对象的动态特性:指在对象创建出来之后,可以再为对象添加新的属性或者方法。
使用点语法给对象属性赋值,如果对象存在该属性,是修改操作;如果对象不存在该属性,那么就是给该对象增加新的属性并且赋值;同样效果的还有使用中括号。
-
-
什么叫逻辑中断:
- 表达式1 || 表达式2:
- 如果表达式1为真,返回表达式1的值;
- 如果表达式1为假,返回表达式2的值。
- 表达式1 && 表达式2:
- 如果表达式1为真,返回表达式2的值;
- 如果表达式1为假,返回表达式1的值。
- 表达式1 || 表达式2:
-
delete运算符的作用是什么:
- 可以用来删除对象的属性,还可以删除未使用var声明的变量(window的属性或者说是全局变量):
delete obj[name];
; - delete关键字有返回值,用来表示删除属性是否成功;
- 如果删除一个对象不存在的属性,返回值也为true;
- 如果删除的属性存在于原型当中,那么返回值为true,但是该属性并未被删除。
- 可以用来删除对象的属性,还可以删除未使用var声明的变量(window的属性或者说是全局变量):
循环有几种:for、for in、while、do while。
分支语句有几种:if else、switch case。
-
跳转语句中break和continue的区别:
- continue跳过本次循环;
- break跳出最近一层的循环。
调试工具
调试窗口介绍
- 指针:选择页面中的元素;
- 手机:使用移动端界面调试;
- element:查看页面DOM树;
- console:控制台(注:控制台与该页面是一个整体,在控制台中的任何操作,都会影响到页面);
- Source:代码调试。
定义函数
- 定义函数的基本语法:三种
- 函数声明:
function 函数名(){//函数体}
- 函数表达式:在使用函数表达式声明函数的时候,function后面可以跟函数名,但是这个函数名只能在函数内部使用,外部无法访问。
var test = function 函数名(){//函数体}
test();
- Function
var test = new Function();
元素节点操作:
增
- 创建文本节点:createElement、createTextNode;
- appendChild、insertBefore、。
删
- removeChild。
改
- replaceChild;
查
- getElementById;
- getElementsByTagName;
- getElementsByClassName,有兼容性问题。
属性节点操作
- getAttribute、setAttribute、removeAttribute。
常用DOM属性
- className、innerHTML、innerText/textContent、value、children
异常处理
- 异常最大的特征:就是一旦出现异常,后面的代码就不会再被执行,为了保证后面的代码在出现异常之后能继续执行,就要进行异常处理;
- 语法:
try{
//可能会出现异常的代码
//可以进行手动抛出异常,使用throw
throw "你的代码有一点小问题哟";
}
catch(e){
//捕获异常,e为捕获到的异常信息
//出现异常时的处理代码
}
finally{
//无论是否出现异常,都会执行
//node.js使用的较多,一般在这里做释放资源的一些操作
}
- 注:语法异常不能捕获,因为js代码执行分为两个阶段:解析阶段(检测语法)和执行阶段。