高深JS

数据类型

1.分类
基本(值)类型
String 任意字符串
Number 任意的数字
boolean true/false
undefined undefined
null null

对象(引用)类型
Object 任意对象
Function 一种特别的对象(可以执行)
Array 一种特别的对象(数值下标属性,内部数据是有序的)

2.判断
typeof :
可以判断undefined / 数值 / 字符串 / 布尔值 / function
不能判断 null与object与array
instanceof; 判断对象的具体类型
=== :
可以判断undefined / null

1.undefined与null的区别
undefined代表定义了为赋值
* null定义并且赋值了,且值为null

2.什么时候给变量赋值为null
* 初始赋值,表明将要赋值为对象
* 结束前,让对象成为垃圾对象(被垃圾回收器回收)

3.严格区别变量类型与数据类型
*数据的类型
- 基本类型
- 对象类型
*变量的类型(变量内存值的类型)
基本类型:保存就是基本类型的数据
引用类型:保存的是地址值

 

数据_变量_内存

1.什么是数据?
* 存储在内存中代表特定信息的'东东',本质上是010101...
* 数据的特点:可传递,可运算
* 一切皆数据
* 内存中所有操作的目标:数据
* 算术运算
* 逻辑运算
* 赋值运算
* 运行函数
2.什么是变量?
* 可变化的量,由变量名和变量值组成
* 每个变量都对应一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据
3.什么是内存?
* 内存条通电产生的可存储数据的空间(临时的)
* 内存产生和死亡:内存条(电路板)==>通电==>产生内存空间==>存储数据==>处理数据==>断电==>内存空间和数据都消失
* 一块小内存的两个数据
* 内部存储的数据
* 地址值数据
* 内存的分类
栈:全局变量/局部变量
堆:对象
4.数据,变量,内存三者之间的关系
* 内存是用来存储数据的临时空间
* 变量是内存的标识

对象

1.什么是对象?
* 多个数据的封装体,保存多个数据的容器
*一个对象代表现实世界中的一个事物
2.为什么要用对象?
* 统一管理多个数据
3.对象的组成
* 属性:属性名(字符串,因为麻烦,所有优化,默认有带双引号)和属性值(任意类型)组成
* 方法:一种特别的属性(属性值是函数)
4.如何访问对象内部数据?
* .属性名 编码简单 有时不能用
* ['属性名'] 编码复杂 通用

问题:什么时候必须使用['属性名']的方式?
1.属性名包含特殊字符:- 空格
2.属性名不确定

 

函数

 1.什么是函数?
* 实现特定功能的N条语句的封装体
* 只有函数是可以执行的,其他类型的数据不能执行
2.为什么要用函数?
* 提高代码复用
* 便于阅读交流
3.如何定义函数?
* 函数声明
* 表达式
4.如何执行函数?
* test(): 直接调用
* obj.test(); 通过对象调用
* new test(): new调用
test.call/apply(obj): 临时让text成为obj的方法进行调用

回调函数

1.什么函数才是回调函数
* 你定义的,你没有调,但最终函数执行了
2.常见的回调函数
* dom事件的回调函数
* 定时器回调函数
* ajax请求回调函数
* 生命周期回调函数

立即调用函数

1.理解
* 全称:Immediately-Invoked Function Expression
立即调用函数表达式
2.作用
* 隐藏实现
* 不会污染外部(全局)命名空间
* 用它来编写JS模块

this和分号问题

1.this是什么?
* 任何函数本质上都是通过某个函数来调用,如果没有直接指定就是window
* 所有函数内部都有一个变量this
* 他的值是调用函数当前对象
2.如何确定this的值?
* test():window
* p.test():p
* new test():新创建的对象
* p.call(obj):obj

1.JS一条语句的后面可以不加分号
2.是否加分号是编码风格问题,没有应不应该,只有你自己喜不喜欢
3.在下面两种情况下不加分号会有问题
* 小括号开头前一条语句
* 中方括号开头前一条语句
4.解决方法:在行首加分号
5.强有力的例子:Vue.js库
6.知乎热议:https:www.zhihu.com/question/20298345

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值