1.javascript的组成:
DOM:文档对象模型。核心对象:document
BOM:浏览器对象模型。核心对象:window
ECMAScript:定义了js的核心语法
2.js中的数据类型:基本数据类型和复杂数据类型、
基本数据类型:string number Boolean null undefined
复杂数据类型:Object对象类型
Object Array Date Function RegExp(正则表达式) Number(数值对象) String(字符串对象)Boolean
3.判断数据的类型 typeof
格式:typeof 数值(变量)
结果:typeof 字符串 //string
typeof 数值 //number
typeof true/false //boolean
typeof undefined //undefined
typeof null //object
typeof 复杂数据类型 //object
typeof 函数 //function
注意:typeof本身是操作符,不是函数
typeof本身有返回值,返回值是字符串类型
null和undefined的区别:
undefined:声明了变量,但未赋值
null:变量的值永远不会为null,除非手动设置
4.逻辑运算符
逻辑非(!表达式):返回值 Boolean
逻辑与(表达式1 && 表达式2):返回值 其中的某个表达式、
判定:检查表达式1是否为真,若为真,返回表达式2;否则返回表达式1
逻辑非(表达式1 || 表达式2): 返回值 其中的某个表达式
判定:检查表达式1是否为真,若为真,返回表达式1;否则返回表达式2
5.值类型和引用类型
值类型:string,number,Boolean,undefined,null
引用类型:(object类型) function,Array,Date,String
值类型和引用类型的区别:
i.存储的位置不同。
值类型存储在栈中,值类型变量,栈中存储的就是该变量的值。
引用类型存储在堆上,新建一个引用类型实例,得到的变量值对应的是该实例的内存分配地址。
ii.值传递和引用传递不同。
值传递相当于拷贝值,虽然两个变量的值一样,但两个变量在栈中的存储空间不同,所以是不同的。
引用传递不一样,引用类型包含的是对上数据区域地址的引用,相当于指针,指的是同一块内存区域。因此当其中一个引用的值发生了变化,另一个指向该内存中的值也会发生改变。
注意:javascript中,字符串为值类型。但,字符串在复制和传递运算中,以引用型数据的方法做处理!!
6.in关键字的使用
作用:(1)遍历对象;(2)检测对象中是否存在指定的属性 语法: “属性” in 对象 返回值:boolean
注意:属性必须是字符串
在操作数组是,key--索引, value--元素、
7.delete
作用:(1)删除对象中的属性;(2)删除没有使用var声明的变量
注意:(1)返回值为Boolean;
(2)不能删除没有使用var声明的全局变量,但却可以删除直接定义在window上的属性
(3)删除不存在的属性没有反应,返回值为true
8.javascript错误-throw,try和catch
try语句: 测试代码块的错误
catch语句: 语句处理错误
throw语句: 创建自定义错误(throw errObj)
errObj必须是一个Error对象或Error的子类型.
基本语法:
try{
//此处是可能产生例外的语句
}catch(error){
//此处是负责例外处理的语句
}finally{
//此处是出口语句
}
上面的代码中.try块的语句首先被执行.如果运行中发生了错误,控制就会转移到位于catch块中语句,其中括号中的error参数被作为例外变量传递. 否则,catch语句就跳过不执行. finally语句在try和catch语句执行完后执行.
(1)Error对象:name属性表示例外的类型,message属性表示例外的含义.根据这些属性的取值,可以决定处理例外的方式.
Error.name的取值一共有六种:
Error:()的使用与定义不一致
RangeError:数据越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当