JS数据类型中不可不知的小点

字面量的含义

  • 字面量适用于表达一个固定值的表示法,又叫常量。
  • 通俗的理解,字面就是所见即所得,js程序执行到代码中的字面量,会立即知道它是什么类型的数据,值是多少。
  • 可以用于表示固定值,比如:数字、字符串、undefined、布尔类型的字面值等
    • 数值字面量:8,9,10
    • 字符串字面量:“大前端”
    • 布尔字面量:true, false

整数字面量

数字字面量

  • 这里的数字就是数学意义上的数字
  • 数字字面量区分:整数字面量、浮点数字面量(小数)、特殊值。
  • 书写时直接书写字面量,不需要添加任何辅助符合奥

整数

  • 整数字面量写法区分进制。
  • 整数可以被表示成十进制(基数为10)、八进制(基数为8)、以及十六进制(基数为十六)。
  • 十进制 是最基本的数值字面量格式,可以直接在代码中输入。
  • 八进制 字面值必须带前导0、0O、0o。八进制整数只能包括数字0-7
  • 十六进制 的前缀是0x或者0X。后面可以包括数字(0-9)和字母a~f或A~F
  • 在进行算数计算时或者参与程序,所有八进制和十六进制的数字都会被转换成十进制
// 十进制
console.log(10) // 10
console.log(-10) // -10

// 八进制
console.log(01); // 1
console.log(010); // 8
console.log(0100); // 64
console.log(01000); // 512
  • 特殊的:八进制中,如果以0开头,每个位数上有超过0-7之间的数字出现,也就是8/9,强制忽略前面的0,直接将后面的数字当作十进制
console.log(089); // 89
console.log(0o89); // 报错

浮点字面量

  • 就是数学概念的小数
  • 包含:整数、小数点、小数部分
  • 浮点数不区分进制,所有浮点数都是十进制下的数字
  • 注意:如果浮点数是大于0小于1的,可以省略小数点前面的0不写
console.log(1.23);  // 1.23
console.log(-1.23); // -1.23
console.log(0.23);  // 0.23
console.log(.23);   // 0.23

// 科学计数法
console.log(1.2e4); // 12000
console.log(1.2e-4); // 0.00012

浮点数的精度问题

  • 浮点数值得最高精度是17位小数,但在进行算数计算时其精确度远远不如整数
  • 例如:0.1+0.2;结果不是0.3,而是:0.30000000000000004

特殊数字字面量

Infinity无穷

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

NaN

  • NaN:not a number表示不是一个正常的数,但还是一个Number类型的数字。这个数字没办法用前面的便是方法表示
  • NaN与任何值都不相等,包括他本身
  • isNaN():判断一个数据是不是一个NaN

字符串字面量

  • 字符串是由人一个数的有序或无需的字符组成的串,类似人类的语言,在JS中有自己特殊的写法
  • 组成:字母、汉字、特殊符号、空白等
  • 字符串字面量的写法:使用一对单引号(’’)或双引号("")及引号内的字符构成,引号中间的字符可以有任意多个,也可以是没有字符的空字符串
  • 注意:字符串中如果包含了双引号,则其外部应该由单引号标示,反之相同

转义符号 \

  • 字符串中,有一些特殊功能的字符不能直接书写,还有一些特殊效果不能直接书写。
  • 这时,可以使用转义符\对这些字符进行转义
  • 在字符串中可以使用转义符\加普通字母,代替一些特殊字符
    • \n 换行
    • \t Tab制表
  • 字符串中可以使用转义符\将特殊功能字符变为普通字符
    • ’ 单引号
    • " 双引号
    • \\ 反斜杠

变量的介绍和声明

什么是变量

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

为什么使用变量

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

变量声明

  • 变量声明又叫做定义变量、创建变量
  • 变量在使用前,必须先有定义,如果没有定义,会出现引用错误
  • 定义方法:使用一个var的关键字进行定义,后面必须加一个空格,空格后面自定义变量名

变量的命名规则和规范

  • 规则 — 必须遵守,不遵守会报错
    • 由字母、数字、下划线、$符号组成,不能以数字开头
    • 字母区分大小写
    • 不能是关键字和保留字
      • 关键字指的是js中有特殊功能的小词语,比如var、for等
      • 保留字指的是现在没有特殊功能,但是将来新语法中有可能作为关键字使用
  • 规范 — 建议遵守的,不遵守不会报错
    • 变量名必须有意义
    • 遵守驼峰命名法

变量赋值

  • 变量定义之后,初始时没有进行复制,内部有一个默认存储的值叫undefined(未定义)表示内部未赋值,可以存储数据了
  • 变量赋值的方式:通过等号=赋值,等号右边的值赋值给左边的变量
  • 注意:书写时,等号=两侧习惯书写一个空格
// 变量定义
var a;
// 变量赋值
a = 3;
// 变量调用
console.log(a);

数据类型

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

简单数据类型

  • Number 数字类型
  • String 字符串类型
  • undefined undefined类型
  • Boolean 布尔类型
  • null null类型

另外还有复杂数据类型

  • Object 对象类型,后期课程详细介绍

Number类型

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

String类型

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

Boolean类型

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

undefined类型

  • undefined本身就是一个数据,表示为定义
  • 变量只声明的时候值默认是undefined

null类型

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

检测数据类型方法

  • 使用typeof的方法进行数据检测
  • 检测方式:在typeof后面加小括号执行,将要检测的数据放在小括号内部
console.log(typeof(1))

变量的数据类型

  • JS语言是一门动态类型的语言,变量并没有一个单独的数据类型,而是会随着内部存储数据的变化,数据类型也会发生变化
  • 变量的数据类型,与内部存储数据有关
  • 将来使用变量时,需要知道内部存储的数据是什么类型,避免程序出错

数据类型转换1

转换成字符串类型

  • 数据.toString()方法
  • String(数据)方法,有些值没有toString(),这个时候可以使用String()。比如undefined和null
  • + 号拼接字符串方式
    • num + “” ,当+两边一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串在进行字符串拼接,返回字符串

转换成数值类型

  • Number(数据)方法
  • 转型函数Number()可以用于任何数据类型,将其他数据类型转为数字
  • 字符串:纯数字字符串转为对应数字,空字符串和空白字符串转为0,非空非纯数字字符串转为NaN
  • 布尔值:true转为1,false转为0
  • undefined:转为NaN
  • null:转为0
  • parseInt()方法:字符串转整数方法
    • 作用:第一,对浮点数进行取整操作;第二,将字符串转为整数数字
    • ①对数字取整直接舍弃小数部分,只保留整数
    • ②将字符串转为整数数字,也包含取整功能
    • 字符串中,必须是纯数字字符串或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分
    • 如果不是数字打头的字符串,会转换为NaN
  • parseFloat()方法:字符串转浮点数方法
    • 作用:将字符串转为浮点数数字
    • 要求:满足浮点数数字字符必须在字符串开始,如果不在开始返回值都是NaN

数据类型转换2

转换成布尔类型

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

猜你喜欢

转载自blog.csdn.net/CS_DGD/article/details/109584099