码迷,mamicode.com
首页 > Web开发 > 详细

JS对象、数据类型区别、函数

时间:2019-02-02 19:24:34      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:let   fun   删除   定义   find   对象引用   obj   func   猪八戒   

对象
基本数据类型都是单一的值,值和值之间没有任何联系,变量之间独立,不能成为一个整体。
对象属于一种符合的数据类型,对象中可以保存对个不同数据类型的属性。
对象分类:
?1.内建对象
??由ES标准中定义的对象,在任何的ES的事项中都可以使用:Math?String?Number?Bollean?Function?Object
?2.宿主对象
??由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象:BOM(浏览器对象模型)?DOM(文档对象模型)
?3.自定义对象
??由开发人员创建的对象
创建对象:使用new关键字调用的函数,是构造函数constructor,构造函数是专门用来创建对象的函数
在对象中保存的值称之为属性
向对象中添加属性
语法:对象.属性 = 属性值

读取属性
语法:对象.属性名

修改属性
语法:对象.属性名

删除属性
语法:delete 对象.属性名

var obj = new Object();//创建对象
obj.name = "xxx";//添加
obj.name//读取
obj.name = "aaa";//修改
delete obj.name;//删除

属性名:
对象的属性名不强制要求遵守标识符的规范(尽量按照标识符的规范去做)obj.123 = xxx;
使用特殊的属性名,不能采用.的方式操作,而是另一种
语法:对象["属性名"] = 属性值
使用[]操作更加的灵活
属性值:
JS对象的属性值,可以是任意数据类型,甚至可以是一个对象

var obj = new Object();
obj.test = true;
obj.test = null;
obj.test = undefind;

var obj2 = new Object();
obj2.name = "猪八戒";
obj.test = obj2;//obj2设置为obj的属性

in运算符
检查一个对象中是否含有指定的属性,有返回true,没有返回false
语法:"属性名" in 对象

//检查obj中是否含有test2属性
console.log("test2" in obj);
console.log("test" in obj);
console.log("name" in obj);

基本数据类型和引用数据类型的区别
基本数据类型保存的是值,引用数据类型保存的是地址
?JS中的数据类型的值是直接在栈内存中存储
?值与值之间是独立存在,修改一个变量不会影响其他的变量
?对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存开辟一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当一个通过一个变量修改属性时,另一个也会受到影响。
对象字面量
使用对象字面量来创建对象,可以在创建对象时,直接指定对象中的属性
语法:{属性名:属性值,属性名:属性值....}

var obj2 = {
name:"xxx",
age:xx,
gender:"xx"
test:{name:"xxx"}
}

函数function
?函数也是一个对象,
?函数中可以封装一些功能(代码),在需要时可以执行这些供能(代码)
?函数中可以保存一些代码在需要时调用
?使用typeof检查一个函数对象时,会返回function

构造函数创建函数对象(很少用)
可以将要封装的代码以字符串的形式传递给构造函数、

var fun = new Function("console.log('xxx');");//很少用

封装到函数代码不会立即执行,调用时执行,调用时会按照顺序执行
语法:函数对象();

函数声明创建函数
语法:function 函数名([形参1,形参2...形参N]){
?语法...
}

函数表达式来创建函数
var 函数名 = function([形参1,形参2...形参N]){
?语法...
};

JS对象、数据类型区别、函数

标签:let   fun   删除   定义   find   对象引用   obj   func   猪八戒   

原文地址:https://www.cnblogs.com/Yokemadman/p/10348901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!