数据类型:
String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
以上是5种基本数据类型,除此之外全是对象
Object 对象
对象属于一种复合的数据类型,可以保存多种不同的属性值
--------------------------------------------
对象和其他5种数据类型不同在于,其他5种数据变量存在于栈内存,值与值之间独立存在,不相互影响,但是对象的值是存在于堆内存中的,每新创建一个新对象,都会在堆内存中开辟新的空间,而对象的变量则是内存中的地理位置
var a = 123
var b = a
a++
console.log(a)
console.log(b)
/*
a = 124 b =123 他们的值相互不影响
*/
var a = new Object()
a.name = "ws"
var b = a
a.name = "xmq"
console.log(a.name)
console.log(b.name)
/*
B的name属性会被A所影响
*/
------------------------------------------------
- 内建对象:
在ES标准中定义的对象,比如String; function; object
- 宿主对象
JS运行环境提供的对象,主要是指浏览器提供的对象
比如BOM(浏览器对象) DOM(文件对象)
- 自定义对象
由开发人员自己创建的对象
语法: var a = new object();
对象添加属性语法:
a.name = “孙悟空” 如果读取对象中没有的属性,不会报错而是返回undefined 对象的属性名不强制要求标识符的规范 乱七八糟的都可以用包括已定义的函数名
a[123] = 789 可以用对象[“属性名”] 来定义特殊的属性名,这种方式存取的属性名不能用console.log(a) 来调用,而是console.log(a[“123”])来调用
例子如下
var a = new Object() , b = new Object();
a.name = "wukong";
b["3_221"] = 77889;
console.log(a.name);
console.log(b["3_221"])
对象属性删除语法 语法:delete 对象.属性名
Delete obj.name;
对象语法的注意点
创建对象有2种语法
1 2
var a = new Object() var a = {}
a.name = "孙悟空" name:="孙悟空", //第二种必须加逗号
a.gender = 18 gender:=18
console.log(a.name) console.log(a.name)