JavaScript网页编程之js数据类型

292 阅读7分钟

js数据类型

字面量

用于表达一个固定值的表示法,又叫常量

概念

  • 通俗的理解,字面:所见即所得。js程序执行到代码中的字面量,会立即知道它是什么类型的数据,值是多少。
  • 例:数值字面量:8、9、10 字符串字面值:"真实的自我"

数字字面量

整数

  • 区分进制

    • 十进制: 逢十进一、每个位数只能是0~9之间的数字
    • 八进制: 逢八进一、每个位数上只能是0~7之间的数字,而且必须添加前缀0、0O、0o
    • 十六进制: 逢十六进一、每个人位数上必须是09、af之间的符号,必须写前缀0x、0X开头
  • 注意:

    • 在进行算术计算时或者参与程序时,所有八进制和十六进制都会被转换成十进制
    • 特殊的:八进制中,如果以0开头,每个位数上有超过0 ~ 7之间的数字出现,也就是8 ~ 9,强制忽略前面的0,直接将后面数字当作十进制。

浮点数

  • 浮点数不区分进制,所有浮点数都是十进制下的数字。
  • 注意:如果浮点数是大于0小于1的,可以省略小数点前面的0不写
  • 浮点数的精度问题
    • 浮点数值的最高精度是17位小数,但是在进行算术计算时其精确度远远不如整数。

Infinity无穷

  • 由于计算机计算能力有限,如果高于最大计算值直接显示:infinity;如果低于最小计算值直接显示:-infinity
  • infinity本身就是一个数字
    • 最小值:Number.MIN_VALUE ☞ 5e-324
    • 最大值:Number.MAX_VALUE ☞ 1.7976931348623157e+308
    • 无穷大:infinity
    • 无穷小:-infinity

NaN

  • not a number: 不是一个正常的数,但是还是一个Number类型的数字。
  • NaN与任何值都不相等,包括他本身
  • isNaN(): 判断一个数据是不是一个NaN

字符串字面量

  • 字符串字面量写法:用一对单引号('')或双引号("")及引号内的字符构成,引号中间的字符可以有任意多个,也可以是没有字符的空字符串
  • 注意:字符串中如果字符包含了双引号,则其外部应该由单引号标示,反之相同。
      console.log('来自内心"真实自我"的呼唤!');
    
  • 转义符号
    • 解决:字符串中有一些特殊功能的字符不能直接书写,还有一些特殊效果不能直接书写
    • 模板:转义字符\普通字符,替代一些特殊字符。 例:\n换行,\t Tab制表
    • 模板:转义字符\特殊功能字符 ,转换成普通字符 例:'单引号 "双引号 \反斜杠

变量

什么是变量

  • variables是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据。
  • 变量相当于一个容器,内部可以存储任意类型的数据,使用变量时,用的是内部存储的数据。

为什么要使用变量

  • 使用变量可以方便的获取或修改内存中的数据

变量声明

  • 变量在使用前,必须先有定义,如果没有定义,会出现引用错误。
  • 定义方法:var b;

变量的命名规则和规范

  • 规则(不遵守会报错):
    • 字母、数字、下划线、$符号组成,不能以数字开头
    • 字母区分大小写,A和a表示不同
    • 不能是关键字和保留字
      • 关键字:js中有特殊功能的小词语,比如:var、for等
      • 保留字:现在没有特殊功能,但是将来新语法中有可能作为关键字使用
  • 规范(建议遵守,不遵守不会报错):
    • 变量名必须有意义
    • 驼峰命名法:多个单词组合而成的,第一个单词首字母小写,后面单词的首字母需要大写。例:userName

变量赋值

  • 变量定义之后,初始时没有进行赋值内部有一个默认存储的值:undefined(未定义),表示变量内部未赋值,可以存储数据了。
  • 一个关键字var可以同时定义多个变量,并且都赋初值。多个变量之间用逗号进行分隔,最后一个变量后面使用分号进行分隔。
  var a = 1,b = 2,c = 3; 

数据类型(6个)

学习目标:理解数据类型的含义和转换方法

js中的值,无论是字面量还是变量,都有明确的类型

简单数据类型(5种)

Number 数字类型

  • 不区分整数、浮点数、特殊值,都是Number类型

String 字符串类型

  • 所有的字符串都是String类型

undefined undefined类型

  • 其本身就是一个数据,表示未定义
  • 变量声明时默认值:undefined

Boolean 布尔类型

  • 字面值:只有true和false,必须是小写字母
  • 计算机内部存储:true为1,false为0

null null类型

  • null本身是一个数据
  • 从逻辑角度,null值表示一个空对象指针
  • 如果定义的变量准备在将来用于保存对象,最好将该变量初始化为null

复杂数据类型

Object 对象类型

检测数据类型

  • 使用typeof的方法进行数据检测
  • 检测方式:
    1. 在typeof后面加小括号()执行,将要检测的数据放在小括号内部。
        console.log(typeof("你好"));   
      
    2. 也可以将typeof作为关键字,后面加空格,空格后添加数据的方式,检测数据。
        console.log(typeof 1);
      
  • 提示:如何使用谷歌浏览器控制台,快速的查看数据类型?
    • 字符串的颜色是黑色的,数据类型是蓝色的,布尔类型也是蓝色的,undefined和null是灰色的。

数据类型转换

转换成字符串类型(3种)

  • 数据.toString()方法
  • 有些值没有toString(),这时(undefined、null)就用String()
  • +号拼接字符串方式:当+两边,一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串再进行字符串拼接,返回字符串。

转换成数值类型(3种)

1. Number(数据)方法

转型函数Number()可以用于任何数据类型,将其他数据类型转为数字。

  • 字符串:
    • 纯数字字符串 → 对应数字
    • 空字符串和空白字符串 → 0
    • 非空非纯数字字符串 → NaN
  • 布尔值
    • true → 1
    • false → 0
  • undefined → NaN
  • null → 0

2. parseInt()方法

字符串转整数方法

  • 方法:
    1. 对数字取整功能,直接舍弃小数部分,只保留整数
    2. 将字符串转为整数数字,也包含取整功能
  • 注意:字符串中,必须是纯数字字符串或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分,如果不是数字打头的字符串,会转换成NaN.

3. parseFloat()方法

字符串转浮点数方法

  • 作用:将字符串转为浮点数数字
  • 要求:满足浮点数数字字符必须在字符串开始,如果不在开始返回NaN。
  • 应用:工作中,利用变量接收prompt()语句返回的用户输入的数据,检测数据类型后,得到的是String.
    <!-- 要将String转换成整数之后,再做算术运算,不然会出错 -->
      var num = parseInt(prompt("请输入您的年龄"));
      var age = num + 50;
    

转换成布尔类型

Boolean(数据)方法

  • 转型函数Boolean()可以用于任何数据类型,将其他数据类型转为布尔类型的值。
  • 转为false: NaN、0、空字符串、null、undefined
  • 转为true: 非0 非NaN数字、非空字符串