JavaScript高级学习总结

[TOC]

JavaScript高级学习笔记

基础总结

数据类型

数据类型分为两类,基本(值)类型(Number: 任意数值,String: 任意文本,Boolean: true/false,undefined: undefined,null: null)和对象类型(Object: 一般对象类型,Array: 特别的对象类型(下标/内部数据有序),Function: 特别的对象类型(可执行))。

数据类型的判别方法有typeofinstanceof===,其中typeof可以区别: 数值, 字符串, 布尔值, undefined, function不能区别: null与对象, 一般对象与数组;instanceof专门用来判断对象数据的类型: Object, Array与Function;===可以判断: undefined和null;

undefined与null的区别?

undefined代表变量没有赋值,null: 代表变量赋值了, 只是值为null

什么时候将变量赋值为null?

初始化赋值: 将要作为引用变量使用, 但对象还没有确定,结束时: 将变量指向的对象成为垃圾对象

严格区别变量类型与数据类型?

js的变量本身是没有类型的, 变量的类型实际上是变量内存中数据的类型,变量类型包括基本类型( 保存基本类型数据的变量)引用类型(保存对象地址值的变量),数据对象包括基本类型对象类型

数据和变量和内存

什么是数据?

存储于内存中代表特定信息的’东西’, 本质就是0101二进制具有可读和可传递的基本特性万物(一切)皆数据, 函数也是数据程序中所有操作的目标: 数据,例如:算术运算,逻辑运算,赋值,调用函数传参等;

什么是内存?

内存条通电后产生的存储空间(临时的),产生和死亡: 内存条(集成电路板)==>通电==>产生一定容量的存储空间==>存储各种数据==>断电==>内存全部消失,内存的空间是临时的, 而硬盘的空间是持久的,内存分为栈(全局变量, 局部变量 (空间较小))堆(对象 (空间较大));一块内存包含2个数据,分别为内部存储的数据(一般数据/地址数据)和内存地址值数据

  • 分配内存: 声明变量和函数或创建对象时, JS引擎会自动为此分配一定大小的内存来存放对应的数据
  • 释放内存: 清空内存中的数据, 标识内存可以再分配使用(内存不释放就不能复用)
    • 自动释放: 栈空间的局部变量
    • 垃圾回调器回调: 堆空间的垃圾对象

什么是变量?

值可以变化的量, 由变量名与变量值组成,一个变量对应一块小内存, 变量名用来查找到内存, 变量值就是内存中保存的内容;

三者的关系

内存是一个容器, 用来存储程序运行需要操作的数据,变量是内存的标识, 我们通过变量找到对应的内存, 进而操作(读/写)内存中的数据

赋值和内存的问题

对于var a = xxx,a内存中到底保存的是什么,当xxx是基本数据,对象和变量时保存对应的类型。

引用变量赋值问题

2个引用变量指向同一个对象, 通过一个引用变量修改对象内部数据, 另一个引用变量也看得见;2个引用变量指向同一个对象,让一个引用变量指向另一个对象, 另一个引用变量还是指向原来的对象

在js调用函数时传递变量参数时, 是值传递还是引用传递?

只有值传递, 没有引用传递, 传递的都是变量的值, 只是这个值可能是基本数据, 也可能是地址(引用)数据,如果后一种看成是引用传递, 那就值传递和引用传递都可以有;

对象

什么是对象

代表现实中的某个事物, 是该事物在编程中的抽象;多个数据的集合体(封装体);用于保存多个数据的容器

为什么要使用对象

便于对多个数据进行统一管理

对象的组成

属性:代表现实事物的状态数据,由属性名和属性值组成,属性名都是字符串类型, 属性值是任意类型

方法:代表现实事物的行为数据;是特别的属性==>属性值是函数

如何访问对象内部数据

通过.属性名的方式,还可以通过['属性名']的方式

函数

什么是函数?

具有特定功能的n条语句的封装体,只有函数是可执行的, 其它类型的数据是不可执行。

为什么要用函数?

提高代码复用和便于阅读和交流;

如何定义函数?

函数声明加表达式的方式;

如何调用(执行)函数?

可以通过如下几种方式调用定义的函数:test()new test()obj.test()test.call/apply(obj)

回调函数

什么函数才是回调函数?

回调函数满足以下三个条件,你定义的你没有直接调用但最终它执行了(在特定条件或时刻)

常见的回调函数?

DOM事件函数;定时器函数;Ajax回调函数等;

匿名函数自调用IIEF

全称: Immediately-Invoked Function Expression 立即调用函数表达式,别名: 匿名函数自调用,他的作用有两点隐藏内部实现不污染外部命名空间

曹辰 wechat
欢迎关注微信公共号 summerhins
不经常抽风性更新 | 挨踢民工 | 爱数码产品 | 爱黑莓 | 爱苹果 | 美剧痴迷者 | 音乐重度爱好者 | 高清下载控 | 不折腾不舒服 | 纠结 | 失眠 | EQ=0
真诚赞赏,手留余香
0%