对象是JS中的引用数据类型
对象是一种复合数据类型,在对象中能够保存多个不一样数据类型的属性
使用typeof检查一个对象时,会返回object数组
对象的分类:浏览器
1.内建对象
- 由ES标准中定义的对象,在任何的ES的实现中均可以使用
- 好比:Math String Number Boolean Function Object….函数
2.宿主对象
- 由JS的运行环境提供的对象,目前来说主要指由浏览器提供的对象
- 好比 BOM DOM(浏览器对象模型、文档对象模型)ui
3.自定义对象spa
- 由开发人员本身建立的对象code
方式一:对象
1 |
var obj = new Object(); |
方式二:ip
1 |
var obj = {}; |
向对象中添加属性内存
语法:
对象.属性名 = 属性值;
对象["属性名"] = 属性值; //这种方式可以使用特殊的属性名开发
对象的属性名没有任何要求,不须要遵照标识符的规范,可是在开发中,尽可能按照标识符的要求去写。
属性值也能够任意的数据类型。
读取对象中的属性
语法:
对象.属性名
对象[“属性名”] //“属性名”带引号即为在对象中寻找具备该属性名的属性,不带引号是变量,寻找变量值为该属性名的属性。
若是读取一个对象中没有的属性,它不会报错,而是返回一个undefined。
删除对象中的属性
语法:
1 |
delete 对象.属性名 |
检查属性
使用in检查对象中是否含有指定属性
语法:"属性名" in 对象
若是在对象中含有该属性,则返回true
若是没有则返回false
使用对象字面量,在建立对象时直接向对象中添加属性
语法:
1 |
var obj = { |
(记住最后一个名值对不加逗号)
基本数据类型和引用数据类型内存中的区别
基本数据类型
String Number Boolean Null Undefined
引用数据类型
Object
基本数据类型的数据,变量是直接保存的它的值在栈内存中。
变量与变量之间是互相独立的,修改一个变量不会影响其余的变量。
引用数据类型的数据,变量是保存的对象的引用(内存地址)在栈内存中,而对象会在建立时在堆内存中开辟一段空间,将对象放入其中。
若是多个变量指向的是同一个对象,此时修改一个变量的属性,会影响其余的变量。
比较两个变量时,对于基本数据类型,比较的就是值,
对于引用数据类型比较的是地址,地址相同才相同。
枚举对象中的属性(使用for...in语句)
1 |
var obj = {'0':'a','1':'b','2':'c'}; |
函数也是一个对象,函数对象,也具备普通对象的功能(能有属性)。函数对象是一个有功能的对象。
函数中能够封装一些代码,在须要的时候能够去调用函数来执行这些代码。
使用typeof检查一个函数时会返回function。
建立函数
可使用构造函数去建立函数,可是这种方法通常不采用。
函数声明
1 |
function 函数名([形参1,形参2...形参N]){ |
函数表达式
1 |
var 函数名 = function([形参1,形参2...形参N]){ |
函数表达式,实质上就是建立一个匿名函数,而后将其赋值给一个变量。
调用函数
语法:函数对象([实参1,实参2…实参N]);
fun() sum() alert() Number() parseInt()
当咱们调用函数时,函数中封装的代码会按照编写的顺序执行。
形参和实参
形参:形式参数
定义函数时,能够在()中定义一个或多个形参,形参之间使用,隔开
定义形参就至关于在函数内声明了对应的变量可是并不赋值,
形参会在调用时才赋值。
实参:实际参数
调用函数时,能够在()传递实参,传递的实参会赋值给对应的形参,
调用函数时JS解析器不会检查实参的类型(须要检查是否符合类型)和个数(多余不会被赋值,少的话未对应的形参值是undefined),能够传递任意数据类型的值。
返回值 (函数执行的结果)
使用return 来设置函数的返回值。
语法:return 值;
该值就会成为函数的返回值,能够经过一个变量来接收返回值。
return后边的代码都不会执行,一旦执行到return语句时,函数将会马上退出。
return后能够跟任意类型的值,能够是基本数据类型,也能够是一个对象。
若是return后不跟值,或者是不写return则函数默认返回undefined。
调用函数和函数对象
mianji() ,这是一个调用函数,至关于使用了返回值。
mianji,这是一个函数对象,至关于使用函数对象。
当即执行函数
函数定义完,当即被调用,这种函数叫作当即执行函数。
当即执行函数每每只会执行一次。
1 |
(function(a,b){ |
方法(method)
能够将一个函数设置为一个对象的属性,
当一个对象的属性是一个函数时,
咱们称这个函数是该对象的方法。
对象.方法名();
回调函数
学识浅薄,若有错误,恳请斧正,在下不胜感激。