(极速版)学习JS只需要15篇短文(第一篇)

104 阅读5分钟
正如本文章标题,极速学习是了解一门语言最有效的方法,本流程学习目标只为了能够快速上手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 的意思是 跳出当前判断,就不会继续往下判断了