js

变量在内存中的保存方式

变量的作用是什么?  保存数据,使用更方便
数据如何保存? 数据分为两种   固定数据 200M 硬盘上     临时数据 内存中
临时数据在内存中的保存方式 : 见图示1
使用变量实际上就是使用变量中保存的值。

变量的基本使用

命名规则

  • 开头可以使用英文字母 $ _
  • js是严格区分大小写的 var a; var A;
  • 不能使用关键字和保留字
  • 不能有空格

建议:变量的命名最好有意义 (困扰这着每一个程序员的问题)

声明

var num;//声明一个变量
var a, b, c, d;//声明多个变量
怪异的声明方式(不推荐)
num = 100;
var a = b = c = 100;

赋值 重新赋值

由于js的特性,可以在变量使用的过程中更改变量的类型
我们不推荐这么做,因为会让我们操作出现不经意的问题。
var num;
num = 100;
num = "hehe";

初始化 : 变量在声明的同时给值

var num = 100;  

数据类型

五大基本类型

1.字符串
    书写字符串必须加双引号或单引号。单引号和双引号必须成对出现

2.数值型
    普通数值 0-9  小数 0.1 1.3  极限值(了解)特殊值 NaN – not a number

3.布尔类型
    true false

4.undefined
    只有自己一个值 
    undefined出现的情况:  变量声明未赋值,值为undefined
    如果变量没有声明就使用,会报错。

5.null 
    空

类型转换

1、其他类型转换为字符串类型

强制转换:

num.toString() : null和undefined没有toString方法,使用String()的方式转换
String(num) : 全能,内部也是调用toString方法

隐式转换:

使用+操作,用任意类型加任意字符串都会连接为新的字符串,一般我们为了不改变数据原有含义,一般加上空字符串  “”

2、其他类型转换为数值类型

强制转换:

Number(); 只可以转换纯数字的 如果含有非数字部分返回NaN
parseInt() 从左往右取值,一直取到不是数字为止。如果开始就不是数字返回NaN
parsefloat() 可以取小数

隐式转换:

+-*/%  -*/%都可以正常使用  +的使用需要注意 必须放在前面使用

3、转换为bool值

显示转换:

Boolean()  其他类型转换为bool值的结果
转换结果为false的是:””  0  undefined  null  NaN  false

隐式转换

!!

运算符

种类

  • 算数运算符

    + - * / %

  • 一元运算符

    操作数只有一个 ++ – 前置和后置的区别和计算方式

  • 比較运算符

    < > >= <= 返回bool值

  • 赋值运算符

    = += -= *= /= %= 操作的是变量自身的值

  • 相等运算符

    == 相等 != 不相等 === 全等 !==不全等

  • 逻辑运算符
    • 当操作数为bool值时:
      逻辑与&& 两个操作数都为true,结果为true 任何一个为false 结果为false
      逻辑或|| 两个操作数都为false,结果为false 任何一个为true结果为true
      逻辑非! 取反
    • 当操作数不是bool值时:
      短路操作
      如果操作数不是bool值,先进行隐式转换,然后从左往右看,哪个操作数能决定结果就返回哪个原操作数

运算符的优先级

优先级从高到底
    ()  优先级最高
    一元运算符  ++   --   !
    算数运算符  先*  /  %   后 +   -
    关系运算符  >   >=   <   <=
    相等运算符   ==   !=    ===    !==
    逻辑运算符 先&&   后||  
    三元运算符

程序的执行

程序的执行顺序:
顺序结构:按顺序一行一行执行
分支结构(条件判断语句): if语句 switch语句
循环结构:for循环 while循环 do..while循环

if语句

if(条件是一个bool表达式){      
}
条件为真,执行内部代码,如果条件不是bool表达式,先隐式转换,然后判断

if的三种结构:
单if结构
if(){

}
ifelse结构
if(){
    满足条件执行if内的代码
}else{
    不满足条件执行else中的代码
}

多个if的情况
if(){

}else if(){

}else if(){

}else{
}

switch语句

switch语句 : 一般用于进行单值判断,但是可以进行范围判断
条件和case的值比較时是全等比較
switch(condition){
    case value :
        alert(“”);
break必须加,否则执行会出问题,一直执行后面所有case中的代码
    break;
    case value :
        alert(“”);
    break;
    default:
        alert();
        break;
}

使用switch进行范围判断的时候,将条件设置为true

三元运算符

语法:  bool表达式?式子1:式子2;
    bool表达式结果为真(true),会返回并执行式子1,否则返回并执行式子2
0%