JS基础学习(1)

89 阅读2分钟

JavaScript 引擎

  • 一门编程语言必不可少的:变量,数据结构,函数,运算能力
  • 单线程 ->模拟多线程
  • 轮转时间片JS
  • 短时间之内轮流执行多个任务的片段
    • 任务一 ,任务二
    • 切分任务一 ,任务二
    • 随机排列这些任务片段,组成队列
    • 按照这个队列顺序将任务片段送进JS进程
    • JS进程执行一个又一个的任务片段

变量

  • var 声明变量 var ->variable
    var a; // 变量声明
    a = 3; // 变量赋值
    var b = 10; // 变量声明并赋值
    // 两个部分组成
    // 声明变量  变量赋值
    
   var x = 10;
   var y = 5;
   var k = x + 5;// 15
   // 运算优先级大于赋值
   

原始值

  • 基本类型
    • Number ,String,Boolean ,undefined,null
    • js是根据值来判断数据类型 -- 弱类型语言
    • 动态语言-> 脚本语言-> 解释型语言-> 弱类型语言
    • 静态语言-> 编译型语言-> 强类型语言

引用值

  • 常用引用值
    • object ,array,function,date,RegExp

运算符

// + - * / % ()

// + 数学运算 字符串拼接
var a = 1,b = 2, c;
    c = 1 + "str";
    
 // 除法
 c = 0 / 0; // NAN
 c = 1 / NAN;//NAN
 
  • 括号运算 > 普通运算 > 赋值
  • 任何类型的值 + 字符串都是字符串
  • 0 / 0 是 NAN -> not a number 是数字类型,本质是在计算之前那个计算的时候就已经得出非数的一个结果,在渲染的时候就会出现一个NAN。
// % 取余数
console.log(5 % 3);// 2
console.log(4 % 6);// 4
console.log(0 % 6);// 0
  • 前面的数比后面的小就取前面的数。

比较运算符

  • 返回bool值 :false | true
// > < >= <= == === != !==

var bool = 1 > "2";
// number - string  string -> number

var boo = "a" > "b";// false
// 字符串象对应 ASCII (字符相对应的十进制代码)多个字符的,从左到右依次对比,直到比较出ASCII码的大小为止。

// == === 
var n = 1 == 1;// true
var a = 1 === "1";//false
// 相等是不看数据类型的,全等是要看数据类型是否相等

var f = 1 != 1;// false
var f1 = 1 !== "1"// true

var bool = NAN == NAN; // false
// NAN与 包括 自己 在内的任何类型都不相等

逻辑运算

  • 与&& 或|| 非!
  • 什么是假?
    • undefined ,null,NAN,"",0,false
    • 除掉上面全是真!
var a = 1 && 2; // 2
var w = 1 && 2 && 0 && 10; // 0
// 遇到真就往后走,遇到假或走到最后就返回当前的值

var b = 1 || 2; // 1
// 遇到假就往后走,遇到真了或者走到最后就返回当前的值

  • 1 && 1 返回1 真
  • 0 && 1 返回0 假
  • 1 && 0 返回0 假
  • 0 && 0 返回0 假
  • 两个都为真才为真,有一个是假的就返回false。
  • 1 || 1 返回1 真
  • 0 || 1 返回1 真
  • 1 || 0 返回1 真
  • 0 || 0 返回0 假
  • 两个有一个为真就为真,全为假才是假
var a = !2;// false
// 非0都是true 0 是false

a = !a; // 把非a赋值给a
a != a; // a 不等于 a