我是靠谱客的博主 单身航空,最近开发中收集的这篇文章主要介绍第二章:数据类型和类型转换第二章:数据类型和类型转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第二章:数据类型和类型转换

一、数据类型简介和检测

1.数据类型的分类

从大的层面来讲,分为基本数据类型和引用数据类型

  • 七种基本数据类型
    • String 字符串类型
    • Number 数字类型
    • Boolean 布尔类型
    • Null 空
    • Undefined 未定义
    • Symbol 符号
    • Bigint 任意精度的整数
  • 引用数据类型
    • Object 对象

2.typeof操作符

  • 作用:检测变量的类型,结果都是字符串形式
  • 用法:
    • 检测值的类型:typeof 值; 或 typeof(值);
    • 检测变量类型 typeof 变量名;或 typeof(变量名);
    • 如果typeof标测得是一个表达式,则一定要带上括号,如typeof(2+“2”);

注意:typeof返回值的类型都是字符串类型

二、5基本数据类型

1.Number数字类型

1.1是什么

  • 所有的数字都是Number类型,包括整数(正负数)和浮点数(小数)
  • 在表达小于1的数时,小数点前面的0可以去掉,比如0.2可以写成.2

1.2不同进制的数字

  • 最常见的有二进制、八进制、十进制、十六进制
  • 我们用的最多的是十进制,逢10进1

1.2.1 二进制数

  • 二进制数以0b开头
  • 二进制数字序列范围0-1,逢2进1
//二进制数字2如何表示,前面一定要加0b,否则按十进制处理
var a = 0b10;
console.log(a);

1.2.2 八进制数

  • 八进制数以0开头
  • 八进制数字序列范围0-7,逢8进1
  • eg:012(八)=10(十) 014(八)=12(十)
  • 09指的是十进制9,因为八进制中最大的数不能超过8

1.2.3 十六进制

  • 十六进制以0x开头
  • 十六进制序列范围0-9以及A-B-C-D-E-F(10,11,12,13,14,15),逢16进1
  • eg:
  • 0xa(十六)=10(十)
  • 0xff(十六)=255(十位上的f代表15个16,个位上是15,15x16+15=255)

1.3 科学计数法

  • 对于非常大或非常小的数,用此表示
  • e7表示10的7次方,小数点向右移动7个点的位置
  • e-7表示0.1的7次方,小数点向左移动7个点的位置

1.4 数字中最大值和最小值

  • 由于内存限制,JS不支持表示这个世界上的所有值,JS中能表示的
  • 最小值保存在Number.MIN_VALUE中 //5e-324
  • 最大值保存在Number.MAX_VALUE中

1.5 正无穷大和负无穷大

  • 如果计算的数值超过了js能表示的正数范围,则会以Infinity正无穷表示
  • 如果计算的数值超过了js能表示的负数范围,则会以-Infinity负无穷表示

1.6 NaN

  • NaN(Not a Number)不是一个数字
  • 而NaN用typeof检测,结果是Number,可以理解为不是数字的数字类型
  • NaN是数字类型,但不能代表任何数字含义,所以不是数字

关于NaN的运算

  • 在数学运算中,如果得到的结果不是数字,则会返回NaN.eg:console.log(“我”-“你”)//NaN,因为结果不是数字
  • 任何值与NaN做运算,都会得到NaN,除了与字符串拼接
    • console.log(“我”+NaN) //“我NaN”
  • 0除以0结果为NaN
  • NaN自己与自己不相等。
  • undefined+数字=NaN

1.7 isNaN()

  • isNaN()在执行时会进行隐式类型转换,内部自动调用Number()函数
  • 判断是否“不是数值”,true不是数值,false是数值
  • 注意:数字字符串结果为false,即判断为数值。//console.log(isNaN(“2”))——false

2.字符串类型

2.1 定义字符串

  • ’ '或" "
  • 通过输入框输入的值都是字符串类型prompt

2.2 双引号与单引号嵌套

  • 单引号不能直接嵌套单引号,若想嵌套,里面的单引号要改为转义符 ’
  • 双引号不能直接嵌套双引号,若想嵌套,里面的双引号要改为转义符 "
  • 单引号可以嵌套双引号(推荐),双引号可以嵌套单引号

字符串转义符——放在引号里

  • n ——换行符
  • —— 斜杠
  • ’ ——单引号
  • " ——双引号
  • t——tab缩进
  • b——空格

2.3 字符串的拼接 +

  • 字符串与任何类型拼接,最终结果是字符串类型

2.4 空字符串

  • ''或""
  • 作用:数据类型转换
    • 字符串与任何类型拼接,最终结果是字符串类型
    • 提前预设变量保存值为字符串类型
<script>
var result="";//result设置为空字符串,与数字相加为字符串
for (var i = 0 ;i<6;i++){
result=result+parseInt(Math.random()*10);
}
console.log(result);//循环六次,得到一个六个数的字符串
</script>
<script>
var result;//result只声明未赋值,默认值为undefined,undefined+数字=NaN,导致得不到结果
for (var i = 0 ; i<6 ;i++){
result=result+parseInt(Math.random()*10);
}
console.log(result);//NaN
</script>

2.5 length属性

  • 通过 length 属性,可以获取整个字符串的长度
  • 注意,若空字符串里面有空格,也算长度

3.Boolean类型

做逻辑判断,两个值true和false

4.null空类型

  • null类型只有一个值,就是null
  • null表示一个空对象指针
  • 用typeof检测null类型,结果为’object’

注:
虽然typeof null结果为Object,但是null是基本数据类型,这是一个历史遗留问题。

  • 不同的对象在底层都表示为二进制,在js中二进制前三位都为0的话会被判断为object类型
  • null的二进制表示是全0,自然前三位也是0,所以执行typeof时会返回object

null作用:

  • 如果一个变量被声明后,将来是用来保存对象值的,那建议用null来初始化,不要使用其他值。
  • 当我们需要将对象,数组,事件监听进行销毁时,就可以把他们设置为null,只有把他们设置为null时,js垃圾回收器才会把他们当成垃圾,进行垃圾回收。

5.undefined

  • undefined类型,只有一个值,就是undefined
  • 当声明一个变量,但是并不给变量赋值时,默认值为undefined

三、数据类型转换

1.其他类型转换为数值型,有四种方式

  • 1、Number()
  • 2、parseInt()
  • 3、parseFloat()
  • 4、隐式转换

1.1 Number()
1.1.1 字符串转数字

  • ''空字符串
  • 字符串只有前后包含空格’ ’
  • 纯数字类字符串
  • 2进制或16进制表示的数字
  • 科学计数法
    除了以上5种情况,其他转为NaN
  • Number([])结果为0
  • Number({})结果为NaN

1.1.2 Boolean转数字

  • Number(true);//1
  • Number(false);//0

1.1.3 null和undefined转数字

  • Number(null);//0
  • Number(undefined);//NaN

1.2 parseInt()和parseFloat()

  • 只能将字符串转成数字
  • 从第一个非空字符开始转换,如果第一个字符不是数值,加号或减号,parseInt立即返回NaN
  • parseInt()和parseFloat()将空字符串""转为NaN
  • 若第一个非空字符是数值,加号,减号,则继续检测,知道字符串末尾,或碰到非数值字符,就停止
  • parseInt()将字符串转成整数,parseFloat()将字符串转成小数

附(思考总结)=================:
A:字符串转数字时

  • Number()会将空字符串""转为数字0;
  • parseInt()和parseFloat()不会将""转为数字,而是返回NaN
  • Number() 和 parseInt()与parseFloat()在遇到不是纯数字字符串转为数字时
    • Number(“123a”);//NaN
    • parseInt(“123a”);//123
    • parseFloat(“123a”);//123

B:在处理用户输入是否为数字时用isNaN()

  • 因为用prompt(),返回的是字符串,isNaN()内部会想尝试将字符串转为数字,再判断是否不是数字,内部隐式转换调用的是Number(),可以将数字的字符串形式转换为数字,但同时,"“空字符串会被转换成数字0,但显然,空字符串”“不是数字。因此,还要过滤掉空字符串,用isNaN(parseInt()),因为parseInt()参数为空字符串”"时会返回NaN,此时就可以过滤掉空字符串了。
  • 如果要求输入是整式,直接用parseInt(),可以规避掉空字符串

1.3 隐式转换

  • 遇到有算术运算(+、—、*、/),会进行隐式转换,调用Number()函数先将字符串转化为数字,再进行运算

2.其他类型转换为字符串

  • String()
  • toString
  • +’ ’

以上方法或函数,将任何类型转换为字符串,都会转换成长得相同的字符串,除了科学计数法和非10进制数字,会将其转换为10进制的字符串

2.1 String()

  • 数字转换为字符串
  • 布尔值转换为字符串
  • undefined和null转换为字符串

2.2 toString()

  • 数字转换为字符串
  • 布尔值转换为字符串
  • undefined和null没有toString()方法

2.3 +’ ’

3.其它类型转换为 boolean 布尔类型

  • Boolean()
  • 代表空、否定的值会转换为false。如:0、NaN、null、undefined、’ ’
  • 其他的均为true

注意:Boolean(" ");//true

JavaScript弱类型的动态脚本语言

  • 动态 声明变量时,不需要确定变量类型,根据后面赋的值确定
  • 弱类型 支持隐式类型转换
  • 脚本语言 边编译边执行

最后

以上就是单身航空为你收集整理的第二章:数据类型和类型转换第二章:数据类型和类型转换的全部内容,希望文章能够帮你解决第二章:数据类型和类型转换第二章:数据类型和类型转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部