正如本文章标题,极速学习是了解一门语言最有效的方法,本流程学习目标只为了能够快速上手JS,能够看得懂代码,不至于在看源码时如同看天书一般,能够自己写出一些功能,完善一些别人代码的简易功能.
1. 了解JavaScript的数据类型(基础类型与复杂类型)
-
以下为基础类型:
String : 字符串类型|在JS中字符串需要使用引号引起来
Number : 数值类型|在JS中所有的数值都是Number类型,包括整数和浮点数
Boolean: 布尔类型|布尔值只有两个(true,false),主要用来逻辑判断
Undefined:未定义类型|不给变量赋值时,它的值就是Undefined
Null: 空引用类型|Null的值只有一个,就是null(空值) -
以下为复杂类型:
Object: 对象类型 | A = {name:张三,age:18}
Array : 数组类型 | [1,2,3,4,5,6]
Function : 函数类型| function A(){console.log(100)} -
基础数据类型存
基础数据类型存放在栈中 复杂数据类型存放在堆中。
栈:由操作系统自动分配内存空间,自动释放,存储的是基础变量以及一些对象的引用变量,占据固定大小的空间。
堆:由操作系统动态分配的内存,大小不定也不会自动释放,一般由程序员分配释放,也可由垃圾回收机制回收。
2. 了解在JavaScript中如何声明变量
声明变量: 创建一块保存数据的内存空间
声明方式
var | let | const
例:
var | let | const 声明方式一样
var A = '100' (字符串类型)
var B = 100 (数字类型)
var C = true (布尔类型)
var D (未定义类型)
var E = Null (空类型)
声明方式的区别:
1.var定义的变量会发生变量提升
变量提升: 若var定义的变量在函数中,则提升到函数的顶部,若在全局中,则提升到全局的顶部
2.var可以重复声明同名变量,效果是重新赋值
3.由于var变量提升带来的原因 ,导致他可以预解析,如果提前调用的结果是Undefined
预解析:在执行Js代码时提前声明变量
4.let 与 const 都是Es6新增的声明变量的方式,它们都不会发生变量提升
5.let 与 const 都不能重复声明同名变量
6.const 一般是用来声明常量的,即声明的变量不能更改
例: 声明: const A = '100' ==> 更改: A = '200' ==> 报错
7.由于let与const都不会发生变量提升,导致他们会产生暂时性死区
暂时性死区:使用let和const命令声明变量之前,该变量都是不可用的,语法上被称为暂时性死区
3. 了解JavaScript中的运算符
运算符类型: 算数运算符 | 逻辑运算符 | 赋值运算符 | 关系运算符 | 三目运算符
-
算数运算符
顾名思义 就是用于计算的运算符,包括(
+ - * /)四种运算符例:
let A = 100 let B = 200 let C = null 1.C = A + B 1.C = 300 2.C = A - B 2.C = -100 3.C = A * B 3.C = 20000 4.C = A / B 4.C = 0.5 -
逻辑运算符
用于执行逻辑运算,包括(
&& || !)例:
let A = 100 let B = 100 1.A&&B = 100 意为 : 变量A和B都等于100吗? 如果等于则返回布尔值 true 如果不等于则返回 布尔值 false 2.A||B = 100 意为 : 变量A和B中有一个等于100吗? 如果有一个等于则返回布尔值 true 如果都没有则返回 布尔值 false 3. A != 100 意为 : 变量A不等于100吗? 如果不等于则返回布尔值 true 如果等于则返回 布尔值 false -
赋值运算符
用于执行赋值操作,包括(
= += -= *= /=)例:
let A = 100 1. A = 200 给变量A赋值一个值为200 2. A += 200 在变量A自身的基础上加上200 3. A -= 200 在变量A自身的基础上减去200 4. A *= 200 在变量A自身的基础上乘上200 5. A /= 200 在变量A自身的基础上除去200 -
关系运算符
用于执行判断操作,包括(
> < >= <= == ===)例:
let A = 100 1.A > 200 A大于200吗? 真返回true 假返回false 2.A < 200 A小于200吗? 真返回true 假返回false 3.A >= 200 A大于或等于200吗? 真返回true 假返回false 4.A <= 200 A小于或等于200吗? 真返回true 假返回false 5.A == 200 A的值等于200吗? 真返回true 假返回false 6.A === 200 A整个变量都等于200吗真返回true 假返回false -
三目运算符
用于执行判断操作,格式(
A==B? 'T':'F')例:
let A = 100 let B = 100 A == B ? '真的': '假的' A的值等于B的值吗? 如果是真的,则返回第一个'真的' 如果是假的,则返回第二个'假的'
4. 了解JavaScript的判断语句
1.if语句
-
if语句经常用于一些单线程条件判断,格式为(
if(){}else{})例:
let A = 100 if(A == 100) {console.log(100)} else {console.log(200)} 意为:如果A等于100,则执行真函数,打印100 如果不等于100,则执行假函数,打印200 若还需要在中间再加一次判断则可使用 else if() {} if(A == 100) {console.log(100)} else if(A == 150) {console.log(150)} else {console.log(200)}
2.switch语句
-
switch语句经常用于多线程条件判断,格式为(
switch(){case a: break;})例:
let A = 100 switch(A){ case 50: console.log(50) break; case 100 : console.log(100) break; 意为:如果A等于50,则执行 case 50 如果等于100,则执行 case 100 break 的意思是 跳出当前判断,就不会继续往下判断了