js高级的学习

js数据类型的相关问题


1.分类

​ -基本(值)类型

​ String:任意字符串

​ Number:任意的数字

​ Boolean:true/false

​ undefined:undefined,代表定义未赋值

​ null:null,定义并赋值了,只是值为null

​ 用法:1.初始赋值,表明将要赋值为对象;

​ 2.结束前,让对象成为垃圾对象(被垃圾回收器回收)

​ -对象类型

​ Object:任意对象

​ Function:一种特别的对象(可以执行)

​ Array:一种特别的对象(数值下标,内部数据是有序的)

2.判断

​ -typeof 返回数据类型的字符串表达

​ 可以判断:undefined/数值/字符串/布尔值

​ 不能判断null与undefined object与array

​ - instanceof 可以判断对象的具体类型

​ - === 可以判断:undefined,null(只有一个值)


数据、内存、变量三者的理解

​ 数据:存储在内存中代表特定信息的“东西”,本质是0101…

​ 特点:可传递,可运算

​ 内存中所有操作的目标:数据 算术运算,逻辑运算,赋值,运行函数…

​ 内存:内存条通电后产生的可储存数据的空间(临时的)

​ 内存的产生和死亡:内存条(电路板)–>通电–>产生内存空间–>存储数 据 -->处理数据–>断电–>内存空间和数据都消失

​ 一块小内存的2个数据:1.内部存储的数据;2.地址值

​ 内存分类:栈内存:全局变量/局部变量 堆内存:对象

​ 变量:可变化的量,由变量名和变量值组成

​ 每个变量都对应着一块内存,变量名用来查找对应的内存,变量值就是内存 中存储的数据

​ 数据、内存、变量三者之间的关系

​ -内存用来存储数据的空间

​ -变量是内存的标识


内存的相关问题:

1.var a = xxx,a内存中到底保存的是什么?

​ xxx是基本数据,保存的就是这个数据

​ xxx是对象,保存的是对象的地址值

​ xxx是一个变量,保存的是xxx的内存内容(可能是基本数据,也可能是地址值)

2.引用变量赋值的问题

​ -n个引用变量指向同一个对象,通过一个变量修改对象内部的数据,其他所有变量看到的是修改之后的数据

​ -2个引用变量指向同一个对象A,让其中一个引用变量指向另一个对象,另一个引用变量仍然指向对象A

3.JS引擎如何管理内存

​ -内存生命周期

​ *分配小内存空间,得到它的使用权

​ *存储数据,可以反复进行操作

​ *释放小内存空间

​ -释放内存

​ *局部变量:函数执行完自动释放

​ *对象:成为垃圾对象 --> 垃圾回收器回收

对象:多个数据的封装体,用来保存多个数据的容器,一个对象代表现实中的一个事物。用于统一管理多个数据。

一个对象中包括属性和方法,属性由属性名(字符串)和属性值(任意)组成,方法是一种特别的属性(属性值为函数)

访问对象内部数据:xxx.属性名-编码简单,有时候不能使用

​ xxx[‘属性名’]-通用,特殊情况必须使用该方法

​ 1.属性名包含特殊字符:- 空格 2.变量名不确定

函数:实现特定功能的n条语句的封装体,只有函数可以执行,其他类型的数据不能执行。用于提高代码复用,便于阅读交流

函数定义:函数声明;表达式。

调用(执行)函数:四种方法

test( ):直接调用 obj.test( ):通过对象调用

new test( ):new调用 test.call/apply(obj):临时让test成为obj的方法进行调用

回调函数:定义的,没有调,但是最终执行到了

常见的回调函数:

1.dom事件回调函数 2.定时器回调函数

3.ajax请求回调函数 4.生命周期回调函数

IIFE Immediately-Invoked Function Expression 立即执行函数表达式

(匿名函数自调用)

作用:隐藏实现,不会污染外部(全局)命名空间,用它来编写js模块

this:任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window 所有函数内部都有一个变量this,它的值是调用函数的当前对象

确定this的值:

this( ):window p.test( ):p

new test( ):新创建的对象 p.call(obj):obj


分号问题:js一条语句的后面可以不加分号

但是有两种情况不加分号会出问题

1.小括号开头的前一条语句 2.中方括号开头的前一条语句

解决方法:行首加分号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值