对象

基本数据类型都是单一的值,值和值之间没有任何联系,变量之间独立,不能成为一个整体。

对象属于一种符合的数据类型,对象中可以保存对个不同数据类型的属性。

对象分类:

 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对象、数据类型区别、函数的更多相关文章

  1. JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集

    工具地址:https://github.com/BothEyes1993/bes-jstools bes-jstools 100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outil ...

  2. 理清JS数组、json、js对象的区别与联系

    最近在敲代码时,遇上了一个关于JS数组的问题,由此引发了关于对象和json的联想,曾经觉得很畅顺的知识点突然模糊了.于是,为了理清这些东西,有了如下这篇文章.觉得没问题的猿们可以当复习,而那些带着疑问 ...

  3. JSON 与 JS 对象的区别与对比

    定义: JSON是什么?JSON是JS的一种简单数据格式,JSON是JavaScript原生格式,它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号. 问题: ...

  4. JSON与JS对象的区别

    <script> var obj2={};//这只是JS对象 var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */ var ...

  5. java:JQuery(声明,JQ和JS对象的区别,prop,attr,addClass,offset,trigger,dblclick和change事件,hide,show,toggle,slideUp,slideDown,slideToggle,三种选择器,标签的获取,三张图片的放大与缩小)

    1.JQuery: jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计 的宗旨是“ ...

  6. 秒懂JS对象、构造器函数和原型对象之间的关系

    学习JS的过程中,想要掌握面向对象的程序设计风格,对象模型(原型和继承)是其中的重点和难点,拜读了各类经典书籍和各位前辈的技术文章,感觉都太过高深,花费了不少时间才搞明白(个人智商是硬伤/(ㄒoㄒ)/ ...

  7. node.js对象数据类型

    在这里复习下前端JS的数据类型:前端JS中的数据类型: 1.基本/原生/值类型 string.number.boolean.null.undefined 2.引用/对象类型    ES对象类型:Str ...

  8. JS对象、构造器函数和原型对象之间的关系

    一.基本概念 1.对象:属性和方法的集合,即变量和函数的封装.每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象. 2.构造器函数:用于创建对象的函数,通过new关键字生成对象. ...

  9. js的数据类型、函数、流程控制及变量的四种声明方式

    运算符 基本运算符 加 + 减 - 乘 * 除 / 取余 % 自增 ++ eg: 1++ 或 ++1 自减 -- eg: 1-- 或 --1 注:++或--写在前面表示优先级最高,先进行自增或者自减 ...

  10. JavaScript学习——JS对象和全局函数

    1. Array对象 数组的特点:长度可变!数组的长度=最大角标+1 2.Boolean对象 如果value 不写,那么默认创建的结果为false 3.Date对象 getTime()返回1970年1 ...

随机推荐

  1. 三、CSS语言

    CSS语言 1.概述:CSS (Cascading Style Sheets)是层叠样式表用来定义网页的显示效果.可以解决html代码对样式定义的重复,提高了后期样式代码的可维护性,并增强了网页的显示 ...

  2. DBMS_METADATA.set_transform_param格式化输出

    DBMS_METADATA.set_transform_param格式化输出获得DDL --输出信息采用缩排或换行格式化 EXEC DBMS_METADATA.set_transform_param( ...

  3. 43-2-CAN协议

    1.帧的种类 通信是通过以下 5 种类型的帧进行的. • 数据帧 • 遥控帧 • 错误帧 • 过载帧 • 帧间隔 另外, 数据帧和遥控帧有标准格式和扩展格式两种格式.标准格式有 11 个位的标识符(I ...

  4. WebSocket 学习教程(二):Spring websocket实现消息推送

    =============================================== 环境介绍: Jdk 1.7 (1.6不支持) Tomcat7.0.52 (支持Websocket协议) ...

  5. java框架之Struts2(4)-拦截器&标签库

    拦截器 概述 Interceptor (拦截器):起到拦截客户端对 Action 请求的作用. Filter:过滤器,过滤客户端向服务器发送的请求. Interceptor:拦截器,拦截的是客户端对 ...

  6. PHP中new self()和new static()的区别探究

    1.new static()是在PHP5.3版本中引入的新特性. 2.无论是new static()还是new self(),都是new了一个新的对象. 3.这两个方法new出来的对象有什么区别呢,说 ...

  7. Spark MLlib之使用Breeze操作矩阵向量

    在使用Breeze 库时,需要导入相关包: import breeze.linalg._ import breeze.numerics._ Breeze创建函数 //全0矩阵 DenseMatrix. ...

  8. selenium 淘宝登入反爬虫解决方案(亲测有效)

    前言 目前在对淘宝进行数据爬取的时候都会碰到,登入时的滑块问题,无论是手动还是脚本都不成功.这里的很重要一个原因是很多的网站都对selenium做了反爬虫机制.接下来是笔者参考网上的网友们的方法亲自测 ...

  9. Parallels Desktop 重装系统

    安装教程,大家可以在网上找找 现在我想重装系统,怎么弄呢? 1.~/Documents/Parallels 目录下那个PVM后缀的文件直接删除 2.重装找开虚拟机,会弹出一个框,说找不到系统,点击删除 ...

  10. javaScript核心基础

    JavaScript 是属于网络的脚本语言! JavaScript 作用:被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies(js也可创建cookie,在浏览器里面创建),以及更多 ...