JS高级学习记录第一天
一、JS数据类型
1.基本(值)类型
2.对象(引用)类型
相关问题
undefined与null的区别,什么时候给变量赋值为null?
undefined表示未定义,没有赋值。unll表示定义了并赋值了,只是值为null。
初始赋值为null,表明将要赋值为对象。
结束前赋值,让变量量指向的对象成为垃圾对象(被垃圾回收器回收)
严格区别变量类型和数据类型
变量类型分为两种,一种保存值,一种保存地址
基本类型(保存值):保存基本类型的数据
引用类型(保存地址):保存对象类型的数据的地址
二、数据、内存、变量
1.数据
存储在内存中的信息,以二进制(0101101)的形式保存,可传递
数据的特点:可传递、可运算
一切皆数据
内存中所有操作的目标是数据
2. 内存
内存条通电后产生的临时储存空间
(1)一块“内存”(一个字节)包含两部分信息
内部储存的数据
该内存的地址值
(2)内存空间分类
3.变量
变量名,用来查找到对应的内存
变量值,内存中保存的数据
数据、内存、变量三者之间的关系?
内存是用来存储数据的空间;变量是内存的标识
关于赋值与内存问题
关于引用变量赋值问题
JS调用函数传递变量参数时,是值传递还是引用传递?
理解1:都是值(基本类型/地址值)传递
理解2:可能是值传递,也可能是引用(地址值)传递
三、对象
1. 什么是对象
保存多个数据(多种数据类型)的容器。这些数据每一个都有键名(key)和值(value)
2. 对象的属性和方法
对象的属性和方法都是对象内部的数据,根据数据类型的不同划分为两类。
属性:保存的数据类型是基本类型、普通对象Object、数组类型Array
方法:保存的数据类型是函数类型Function
3. 访问对象内部的数据
方法一(有时候不管用):.数据键名
方法二(通用方法):[‘数据键名’],数据键名有特殊字符/或者是一个变量
四、函数
1. 什么是函数
用来实现特定功能的, n条语句的封装体,可以执行
(1)函数是对象,也有属性和方法
属性:test.prototype
方法:test.call/apply(obj)。这个方法可以让test临时成为obj的方法
(2)如何调用函数
test()直接调用
obj.test():通过对象调用
new test():通过new调用
test.call/apply(obj):临时让test成为obj方法进行调用
2.回调函数
(1)回调函数的定义
自定义的,没有调用,但是最终会执行的函数
(2)常见的回调函数
dom事件回调函数
定时器回调函数
ajax请求回调函数
生命周期回调函数
3. IIEF
全名:Immediately-Invoked Function Expression立即调用函数表达,
别名:匿名函数自调用
作用:隐藏实现,不污染外部(全局)命名空间,用来编写JS模块
4.函数中的this关键字
所有的函数都有一个内部变量this,代表调用函数的当前对象,既然如此,那么this具体指的是谁,只有当函数执行才知道,谁调用,this就是谁。任何函数本质上都是通过某个对象来调用。
如何确定this的值?这里假设已定义了函数test。