对象(Object)

对象是JS中的引用数据类型
对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性
使用typeof检查一个对象时,会返回object

对象的分类:

1.内建对象
- 由ES标准中定义的对象,在任何的ES的实现中都可以使用
- 比如:Math String Number Boolean Function Object….

2.宿主对象
- 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
- 比如 BOM DOM(浏览器对象模型、文档对象模型)

3.自定义对象

- 由开发人员自己创建的对象

方式一:

1
var obj = new Object();

方式二:

1
var obj = {};

向对象中添加属性

语法:
对象.属性名 = 属性值;
对象["属性名"] = 属性值;   //这种方式能够使用特殊的属性名

对象的属性名没有任何要求,不需要遵守标识符的规范,但是在开发中,尽量按照标识符的要求去写。
属性值也可以任意的数据类型。

读取对象中的属性

语法:
对象.属性名
对象[“属性名”] //“属性名”带引号即为在对象中寻找具有该属性名的属性,不带引号是变量,寻找变量值为该属性名的属性。
如果读取一个对象中没有的属性,它不会报错,而是返回一个undefined。

删除对象中的属性

语法:

1
2
delete 对象.属性名  
delete 对象["属性名"]

检查属性

使用in检查对象中是否含有指定属性
语法:"属性名" in 对象
如果在对象中含有该属性,则返回true
如果没有则返回false​

使用对象字面量,在创建对象时直接向对象中添加属性

语法:

1
2
3
4
5
6
var obj = {  
属性名:属性值,
属性名:属性值,
属性名:属性值,
属性名:属性值
};

(记住最后一个名值对不加逗号)

基本数据类型和引用数据类型内存中的区别

基本数据类型
String Number Boolean Null Undefined
引用数据类型
Object

基本数据类型的数据,变量是直接保存的它的值在栈内存中。
变量与变量之间是互相独立的,修改一个变量不会影响其他的变量。

引用数据类型的数据,变量是保存的对象的引用(内存地址)在栈内存中,而对象会在创建时在堆内存中开辟一段空间,将对象放入其中。
如果多个变量指向的是同一个对象,此时修改一个变量的属性,会影响其他的变量。
比较两个变量时,对于基本数据类型,比较的就是值,
对于引用数据类型比较的是地址,地址相同才相同。

枚举对象中的属性(使用for...in语句)

1
2
3
4
5
var obj = {'0':'a','1':'b','2':'c'};  

for(var i in obj) {
console.log(i,":",obj[i]);
};

函数(Function)

函数也是一个对象,函数对象,也具有普通对象的功能(能有属性)。函数对象是一个有功能的对象。
函数中可以封装一些代码,在需要的时候可以去调用函数来执行这些代码。
使用typeof检查一个函数时会返回function。

创建函数

可以使用构造函数去创建函数,但是这种方法一般不采用。

函数声明

1
2
3
function 函数名([形参1,形参2...形参N]){  
语句...
}

函数表达式

1
2
3
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
2
3
4
(function(a,b){  
console.log("a = "+a);
console.log("b = "+b);
})(123,456);

方法(method)

可以将一个函数设置为一个对象的属性,
当一个对象的属性是一个函数时,
我们称这个函数是该对象的方法。
对象.方法名();

回调函数

见数组forEach方法中。
 

学识浅薄,如有错误,恳请斧正,在下不胜感激。

JS基础学习第四天的更多相关文章

  1. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  2. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  3. JS基础学习——对象

    JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...

  4. JavaScript 基础 学习 (四)

    JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 ​ 元素.on事件类型 = null ​ 因为赋值的关系,所以给事件赋值为 null 的时候 ​ 事件触发的时候,就没有事件处理 ...

  5. JS 基础学习随想

    2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...

  6. handlebars.js基础学习笔记

    最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...

  7. JS基础学习1

    1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1)     核心(ECMAscript) (2)     文档对象模型(DOM)  Document object ...

  8. Node.js基础学习四之注册功能

    前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...

  9. js基础学习笔记(四)

    4.1 什么是数组 我们知道变量用来存储数据,一个变量只能存储一个内容,存储多个值时,就需要用到数组. 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数 ...

随机推荐

  1. nodejs package.json中的exports

    test/package.json { "name": "test", "main": "index.js", &quo ...

  2. Java并发包源码学习系列:同步组件CountDownLatch源码解析

    目录 CountDownLatch概述 使用案例与基本思路 类图与基本结构 void await() boolean await(long timeout, TimeUnit unit) void c ...

  3. 链接服务器sql语句

     EXEC  sp_addlinkedserver      @server='sha',--被访问的服务器别名       @srvproduct='',      @provider='SQLOL ...

  4. Spring-02 第一个Spring程序

    Spring-02 第一个Spring程序 第一个Spring程序 1.导入依赖 <dependency> <groupId>org.springframework</g ...

  5. 【Notes_8】现代图形学入门——几何(基本表示方法、曲线与曲面)

    几何 几何表示 隐式表示 不给出点的坐标,给数学表达式 优点 可以很容易找到点与几何之间的关系 缺点 找某特定的点很难 更多的隐式表示方法 Constructive Solid Geometry .D ...

  6. Pygame基础(1)

    Pygame是Python的一个很常用的游戏框架,今天我来讲一讲Pygame的基础知识 Pygame的官网:https://www.pygame.org/news Pygame的下载 打开cmd输入p ...

  7. Django-1.11中文文档-模型Models(一)

    官方文档链接 模型是数据信息的唯一并明确的来源.它包含了我们储存的数据的基本字段和行为.通常,每个模型映射到一张数据库表. 基本概念: 每个模型都是django.db.models.Model的一个子 ...

  8. EFCodeFirst Migrations数据库迁移

    EFCodeFirst Migrations数据库迁移 数据库迁移 1.生成数据库 修改类文件PortalContext.cs的静态构造函数,取消当数据库模型发生改变时删除当前数据库重建新数据库的设置 ...

  9. 后端程序员之路 7、Zookeeper

    Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper ...

  10. HDOJ-2222(AC自动机+求有多少个模板串出现在文本串中)

    Keywords Search HDOJ-2222 本文是AC自动机的模板题,主要是利用自动机求有多少个模板出现在文本串中 由于有多组输入,所以每组开始的时候需要正确的初始化,为了不出错 由于题目的要 ...