数据类型

1.数据类型简介

  1. 为了便于把数据分成所需内存大小不同的数据,充分利用存储空间
  2. 数字型:数字(不能用引号)
  3. 八进制:var num=010(数字前面加0,表示八进制)
  4. 十六进制:var num=0x9(数字前面加0x表示十六进制)
  5. 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
  6. 最小值:Number.MIN_VALUE,这个值为:5e-32(点代表Number数字的最大值/最小值)
  7. Infinity ,代表无穷大,大于任何数值
  8. -Infinity ,代表无穷小,小于任何数值
  9. NaN ,Not a number,代表一个非数值(使用isNaN()来判断是否是数字,如果是数字,返回false;如果不是数字,返回true。)要注意判断的是数据,是值,不是数据类型。
var age=18;
    var b='18';
    console.log(isNaN(age));
    console.log(isNaN(b));
    它们的返回值都是false。
  1. 字符串型:不管什么文本(字母,汉字,下划线,美元,只要加单引号)出现两个引号时,就近原则----内单外双 内双外单。注意:加上转义符就可以存在两个相同的引号。
  2. 字符串转义符:转义符都是 \ 开头的

转义符

解释说明

\n

换行符,n 是 newline 的意思

\ \

斜杠 \

\’

单引号

\"

双引号

\t

tab 缩进

\b

空格

  1. 字符串长度(length 属性,数字不能使用该属性。还可以倒着推出来是否为字符串)
var str = '啦啦啦啦啦啦啦'; // var 变量名='文本';
      console.log(str.length);// console.log(变量名.length)
      //显示7
  1. 字符串拼接
- 步骤:先把要改的值删去,给引号(与最外层的引号保持一致),在引号之间给俩加号,最后把变量扔到加号之间。
- 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串
- 多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串
- +用在字符串拼接时,左边或者右边必须有一边是字符串型
- 字符串和变量来拼接,变量可以很方便地修改里面的值,变量是不能添加引号的,因为加引号的变量会变成字符串
console.log('小李' + 18);           // 只要有字符就会相连 
      var age = 18;
      // console.log('小李age岁啦');       // 这样不行哦
      console.log('小李' + age);          // 小李18
      console.log('小李' + age + '岁啦');  // 小李18岁啦
+ 号总结口诀:数值相加 ,字符相连
  1. 布尔型boolean:所有的都可以转换成布尔型,俩值 true(值为1)和false(值为0)在定义一个boolean类型的变量时,经常使用flag:为变量名 。
    只有五种情况会转换成false
  2. 空字符串 (引号里面不能加东西)
  3. 0(数字型的0)
  4. undefined(不加引号,加引号就变成了true)
  5. null(不加引号)
  6. NaN(not a number)
  7. undefined型:没有返回值的函数返回为undefined,没有实参的形参也是undefined。
    只声明没赋值 ,直接赋值undefined。
  8. null型 : null它是一个空对象指针,和其它语言一样都是代表“空值”
    给变量设置成null时, var nl=null; prompt 点击取消,返回值为null
    null 和 undefined 都表示“值的空缺”,你可以认为undefined是表示系统级的、出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺。

2.判断数据类型:

1.纯数字 浮点数
2.字符串 带引号
3.true或者false
4.undefined
5.null
6.控制台:数字型—蓝色 字符串-----黑色 布尔型-------深蓝色
7.typeof 用来判断数据类型:var c = 20; typeof c
var age2 = prompt(‘请输入年龄’);
console.log(typeof age2);
控制台得到的是:string

var c = true;
   console.log(typeof c);
    控制台得到的是:boolean

3.为什么要进行数据类型转换

  • 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。

4.其他类型转换成字符串类型

  1. 用+号 拼接上一个空字符串(“”空字符串 “ ”空格字符串)⭐
  2. 通过toString() 用法: 变量.toString() ⭐
    var age = 15;
    console.log(age.toString());
  3. 通过String方法 用法: String(变量)
    var num = 25;
    console.log(String(num));

5.其他类型转换成数字类型⭐

  1. 通过parseInt进行转化(必须是以数字开头,true直接使用parseInt转化成NaN,取整,小数点后面省去)
    var str = ‘bsh’;
    console.log(typeof parseInt(‘bsh’));
    控制台得到的是 number
var  str = 'bsh';
console.log(parseInt(str));
控制台得到的是 NaN
  1. 通过 parseFloat(必须以数字开头,true直接用它转换成NaN,取浮点数)
  2. 通过Number(只能对值为纯数字的时候进行转换,并且保留浮点数) 要求字符串的值必须是一个数值
  3. 隐式转换:+ - * / 要求字符串的值必须是一个数值
  4. 当字符串比较大小的时候,会从左右到右依次比较。所以需要把输入的字符串变成数字类型。

6.其他类型转换成布尔类型

  • 代表空、否定的值会被转换为 false ,如 ‘’、0、NaN、null、undefined***
  • 其余值都会被转换为 true
    console.log(Boolean(’’)); // false·
    console.log(Boolean(0)); // false
    console.log(Boolean(NaN)); // false
    console.log(Boolean(null)); // false
    console.log(Boolean(undefined)); // false
    console.log(Boolean(‘小白’)); // true
    console.log(Boolean(12)); // true

运算符

JavaScript中常用的运算符有:

  • 算数运算符
  • 递增和递减运算符
  • 前置++ 是先让元素自增1 然后再做运算。
  • 后置++ 是先做运算 在让元素自增1
    var a = 10;
    var b = 20;
    var c = 30;
    var d = ++a + a++ + ++a - ++b + ++b + c++ - ++c + ++c;
    // 11+11+13-21+22+30-32+33
    console.log(d);
    var f = 10;
    var e = ++a + (a++ * ++a);
    // 11+(11*13)
    //要从左到右先把各个值得出来,再开始计算。
  • 比较运算符
  • ==比较的数 两边的值是否相等 与数据类型无关
  • ===比较的数 两边的值和数据类型是否一样 返回true时要求值和数据类型一样
  • 逻辑运算符
  • 逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值
  • 逻辑与:&&
  • 只要有一个条件不满足 那么结果就是 false
  • 如果前面都是true ,那么返回的结果取决于最后一项的值,返回值是最后一项的值
  • 逻辑中断:遇到false,就不执行了,不管后面的值
    console.log(1 && 1 && 0 && 4);
    //得到的值是0
    console.log(1 && 1 && 2 && 4);
    //得到的值是4
  • 逻辑或 :||
  • 只要有一个条件满足 那么结果就是 true
  • 逻辑中断:遇到true 就返回true 剩下的不执行
  • 逻辑非 :!
  • 逻辑非(!)也叫作取反符相当于这个变量取反,用来取一个布尔值相反的值,如 true 的相反值是 false
  • 赋值运算符

流程控制

流程控制就是来控制代码按照一定结构顺序来执行

  • 顺序结构
  • 程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
  • 分支结构
  • if 语句(单语句)
if (条件表达式/值/变量) { // 如果是值和变量,if会做隐式转换,转换为boolean类型
    // 条件成立执行的代码语句
}
  • if else语句(双分支语句)
if (条件表达式) {
    //  条件成立执行的代码
} else {
    // 条件不成立执行的代码
}
 var age = prompt('请输入你的你的年龄:');
 if (age >= 18) {
       alert('欢迎光临');
 }
 else {
      alert('未成年禁止入内');
  }
  • if else if else(多分支语句)
  • 从上向下判断,有满足条件的就执行,后面的代码就不执行了。
    方法一:
    if (a < 59) {
    alert(‘不及格’);
    }
    方法二:(位置可以随意更改)
    if (a >= 0 && a < 59)
  • 三元表达式:语法结构 条件判断语句代码 ? 条件满足要执行的代码:条件不满足时要执行的代码。
  • switch 语句
  • 注意:
  1. switch 后面括号内可以是表达式或值, 通常是一个变量
  2. 需要全等做判断
  3. 如果满足条件但是没有break,,则继续执行下一个case里面的语句,直到遇到break为止
  4. 如果所有的 case 的值都和表达式的值不匹配,则执行 default 里的代码
switch( 表达式 ){ //表达式常为一个变量  ***
      case value1: //仅仅是值,不支持写表达式:>=value1  ***
          // 表达式 等于 value1 时要执行的代码
          break;
      case value2:
          // 表达式 等于 value2 时要执行的代码
          break;
      default:
          // 表达式 不等于任何一个 value 时要执行的代码
          break; //这个可以省略
  }
  • switch: 判断一系列固定的值,比如星期。
  • if else : 常用于判断范围,也可以判断固定值
  • 循环结构