IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript笔记(数据类型转化,适用于零基础小白) -> 正文阅读

[JavaScript知识库]JavaScript笔记(数据类型转化,适用于零基础小白)

一、数据类型的转化原因

? ? ? ? JavaScript是一门 弱类型 轻量级 解释型 的脚本语言。因为是弱类型语言,定义变量时不受限制,一个变量中可以存储任意类型的数据。所以一旦程序执行需要 指定的数据类型,而变量中存储的数据类型和程序执行需要的数据类型不同,就需要将变量中存储的数据类型进行转化。

二、数据类型转化的类型

1、自动类型转化

1.1、其他类型转化为字符串类型

(1)、什么时候转化?? 字符串 拼接 时,所有的数据类型都要转化为字符串类型,再执行 字符串拼接操作。

(2)、怎么转化?

???????? 布尔-->字符串:

? ? ? ??//?true?---?'true'

????????console.log(?'北京'?+?true?);?

????????//?false?---?'false'

????????console.log(?'北京'?+?false?);

? ? ? ? 数值-->字符串(值得注意的是:其他进制的数值先转化成十进制的数,再进行字符串拼接)

?

//?100?---?'100'

????????console.log(?'北京'?+?100?);

????????//?100.123?---?'100.123'

????????console.log(?'北京'?+?100.123?);

????????//?2e3?---?2000?---?'2000'

????????console.log(?'北京'?+?2e3?);

????????//?NaN?---?'NaN'

????????console.log(?'北京'?+?NaN?);

????????//?0b100?---?4?---?'4'

????????console.log(?'北京'?+?0b100?);

????????//?0100?---?64?---?'64'

????????console.log(?'北京'?+?0100?);

????????//?0x100?---?256?---?'256'

????????console.log(?'北京'?+?0x100?);

????????//?null?---?'null'

????????console.log(?'北京'?+?null?);

????????//?undefined?---?'undefined'

????????console.log(?'北京'?+?undefined?);

?1.2、其他类型转化为数值类型

(1)、什么时候转化? 算数运算时(加法有可能执行字符串拼接)

(2)、怎么转化?

? ? ? ? 布尔类型-->数值:? true---1? ? false---0

? ? ? ? null---0

? ? ? ? undefined---NaN

? ? ? ? 字符串:如果字符串内容 符合数字规范 转化为 对应的数字数值

? ? ? ? ? ? ? ? ? ? ? 如果字符串内容不符合数字规范 转化为 NaN

??//?1,?布尔类型?true?--?1?????false?--?0

????????console.log(?100?-?true?);

????????console.log(?100?-?false?);

????????//?2,?null?--?0

????????console.log(?100?-?null?);

????????//?3,?undefined?--?NaN

????????console.log(?100?-?undefined?);

????????//?4,字符串?

????????//?符合数字规范?转化为对应的数字

????????//?不符合数字规范?转化为?NaN

????????console.log(?100?-?'100'?);

????????console.log(?100?-?'100.123'?);

????????console.log(?100?-?'2e3'?);

????????console.log(?100?-?'0b100'?);

????????//?0100的字符串?不按照?八进制计算?就认为是?整数100

????????console.log(?100?-?'0100'?);????

????????console.log(?100?-?'0x100'?);

????????//?不符合数字规范的字符串都转化为NaN

????????console.log(?100?-?'北京'?);

????????console.log(?100?-?'100a'?);

????????console.log(?100?-?'a100'?);

????????console.log(?100?-?'2a3'?);

????????//?如果有字符串参数?加法运行?执行?字符串拼接

????????//?执行?加法运算?

????????//?true?转化为?数值?1?执行?加法运算?结果是?101

????????console.log(?100?+?true?);

????????//?执行?字符串拼接

????????//?数值100?转化为?字符串100?和?字符串true?执行拼接操作

????????//?执行?结果是?字符串100true

????????console.log(?100?+?'true'?);

????????var?a=010;

????????console.log(100?-?a.toString(8));

?1.3、其他类型转化为布尔类型

(1)、什么时候转化?if判断语句;逻辑运算符;三元运算符

(2)、转化原则:

? ? ? ? ? ? ? ? 0? ?0.0? ?''? ?NaN? ?null undefined

? ? ? ? ? ? ? ? 其他所有情况都转化为true

2、强制类型转化(使用?JavaScript提供的函数方法来执行)

2.1、强制转化为布尔类型

? ? ? ? ? ? ? ? Boolean(变量/表达式)

????????????????函数的执行结果返回值?是?将?变量/表达式?的数据?转化为?布尔类型

????????????????转化原则?和?自动转化原则完全相同

?????????????????false?:??0???0.0???''???NaN???null???undefined

?????????????????true:?其他数值都转化为true???

????????????????并且?不会?改变?变量/表达式?的原始数值

? ? ? ? ? ? ? ? 只是?函数的执行结果返回值?是?布尔类型

?var?a?=?100;

????????//?获取变量a中存储的数值100?

????????//?转化为对应的布尔类型?---?true

????????//?将?转化结果?true?赋值给?变量b?存储

????????//?变量a?中?存储的数值任然是100?

????????var?b?=?Boolean(?a?);

????????console.log(?a?);

????????console.log(?b?);

?2.2、强制转化为字符串类型

? ? ? ? ? ? ?1)、String(变量/表达式)

????????????????????函数的执行结果返回值?是?将?变量/表达式?的数据?转化为?字符串类型

????????????????????转化原则?和?自动转化原则完全相同

????????????????????将?变量/表达式?的数值?转化为对应的字符串内容

????????????????????并且?不会?改变?变量/表达式?的原始数值

????????????????????只是?函数的执行结果返回值?是?字符串类型

? ? ? ? ????????2)、变量.toString()

? ? ? ? ? ? ? ? ? ? ? ? 同上!!!

? ? ? ? ? ? ? ? ? ? ? ? 与String(变量/表达式)不同的是:如果?变量?中存储的是?null?/?undefined?不能使用?这个函数方法;如果?变量?存储的数据?是数值或者符合数字规范,()中可以设定进制?范围是?2-36。

?2.3、强制转化为数值类型

????????????????

?Number(变量/表达式);

????????????????????函数的执行结果返回值?是?将?变量/表达式?的数据?转化为?数值类型

????????????????????转化原则?和?自动转化原则完全相同

????????????????????true?---?1

????????????????????false?null??''?---?0

????????????????????符合数字规范的字符串?---?对应的数字

????????????????????不符合数字规范的字符串?undefined?---?NaN

????????????????????并且?不会?变量?变量/表达式?的原始数值

????????????????????只是?函数的执行结果返回值?是?数值类型

? ?

?3.parsInt和parsFloat

????????????????

?????????????????parseInt(?变量/表达式?);

????????????????从?左起?获取?变量/表达式?数值?的整数部分 .

?????????????????parseFloat(?变量/表达式?);

? ? ? ? ? ? ? ? ?从?左起?获取?变量/表达式?数值?的?浮点数部分 .

??//?parseInt()?从左起获取整数部分

????????//console.log(?parseInt(?100?)?);

????????//console.log(?parseInt(?100.9999999999?)?);

????????//?console.log(?parseInt(?2e3?)?);

????????//?//?true?不会转化为数值?直接获取?true?数值的整数部分

????????//?//?从左起?第一个字符?不符合?整数语法规范?结果是?NaN

????????//console.log(?parseInt(?true?)?);

????????//?console.log(?parseInt(?false?)?);

????????//?console.log(?parseInt(?null?)?);

????????//?console.log(?parseInt(?undefined?)?);


?

????????//?console.log(?parseInt(?'100'?)?);

????????//?console.log(?parseInt(?'100.9999'?)?);

????????//?//?2e3?是?浮点数语法规范?不是整数的语法规范

????????//?//?不会转化为数值2000?直接对?2e3?这三个字符?获取?整数部分

????????//?//?结果是?2?

????????//?console.log(?parseInt(?'2e3'?)?);


?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:49:53  更:2021-09-01 11:51:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:46:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码