JS里默认和常用转换
* { font-family: PingFang, Monaco }
JS里的六大简单数据类型
string字符类型number数字类型boolean布尔类型symbolES6语法新增undefined声明了变量但未给值null空数据
JS里的负责数据类型
object数据类型,包括JavaScript数组,正则都是obj类型
默认数据转化
Other => Bool
- 转布尔
- 1、像if-else这样的表达式
- 2、boolean()方法显式的转换
- 9种其他值转换后对于的假值
- 1、""
- 2、''
- 3、``
- 4、0
- 5、-0
- 6、NaN
- 7、false
- 8、null
- 9、undefined
Other => Number
- 转数字
- 1、Number(
val)方法- val如果为布尔值,真假则会被转换为1和0
- val如果是数字,那就是简单的传入和返回
- val如果是null,则返回0
- val如果是undefined,则返回NaN
- val如果是字符串则全数字转数字,注意进制,空串转为0,非全数字转为NaN
- 2、parseInt(
val)- 传入的参数,若是字符串,则从第一个字符开始检索,保留到非数字,例如
paserInt('1234abcd5')结果为1234 - 若参数为数字,则会看是否为小数,若为小数则会保留整数。
- ES5还提供第二个参数,第二个参数指定了,传入的参数为多少进制的数字,输出的数字都是十进制
- 传入的参数,若是字符串,则从第一个字符开始检索,保留到非数字,例如
- 3、parseFloat(
val)- 该参数只解析十进制数,没有第二个参数
- 该方法为保留尽可能多的数值,例如123hello会被转换为123
- 该方法会将参数转换为小数
- 4、静态方法,该方法可以直接调用
- Number.isInteger(
val)判断一个值是否为整数,3和3.0是同一个值,且该方法不会对参数进行自动类型转换,所以Number.isFinite('23');的结果为false - Number.isFinite(
val)如果参数是数字,结果为ture,该方法不会自动类型转换
- Number.isInteger(
- 5、实例方法,该方法由实例方法调用
- toFixed()该方法按照指定的小数位进行四舍五入的字符串表示,这个方法的结果类型为字符串,参数为保留小数的个数
- toExponential()返回四舍五入后的指数表示法,参数表示转换后的小数位数
- toPrecision()接收一个参数,即表示数值的所有数字位数,不包括指数部分,自动调用toFiexd()或toExponential(),参数为1-21,不传参或者为undefined则相对于调用toString方法
- 1、Number(
Other => String
- 转字符串
- toString方法
- null和undefined并不能通过toString()函数来转换成相应的字符串,参数为转换成几进制
- 利用+运算符和字符串进行运算(主要方法)
- 通过String()方法来进行转换
- toString方法
symbol防止属性名冲突
- 略
默认的类型转换
- 1、隐形转换
- 加号运算符的式子中,有字符串则变成字符串,没有字符串但不全为数字则为NaN,布尔值会转为1和0,全为数字则得出Number类型
- 除了加号的其他运算符,如减号-,乘号*,除/,求余%,都会将数据转换为数字类型
- 当预期为布尔值的时候,会将前面的九种数据类型转换为false
- 转换技巧
- 转成字符串
a = "" + 数据 - 转换布尔
!数据类型 - 转换数值
数据类型*1
- 转成字符串
var sum = 1 + 1; // 结果为2,因为两者都是Number类型的数据
var sum = 1 + true; // 结果为2,因为Number + true,布尔会被转化为1和0
var sum = 1 + null; // 结果为1,因为Number + null,没有字符串,且我希望得到数值结果,所以null会转为Number,null转为Number的结果为0,所以1+0的结果为1
var sum = true + null; // 结果为1,因为布尔转为1,null转为0,所以1+0为1
var sum = "" + 任意数据类型; // 结果都为字符串,如果是利用toString()转换则不能转null和undefined!注意这点。
var sum = 任意数据类型 * 1; // 如果能计算出来,则为具体数值,如果算不出来,例如undefined和1进行运算这样的得不出来结果,就会得到NaN
// NaN 的意思是Not a Number,意思是我想要得到一个数字,但是实际得到的却不是一个数字,就会得到NaN,NaN的数据类型也是Number
JS里默认和常用转换的更多相关文章
- Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
Javascript中双等号(==)隐性转换机制 在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...
- js变量在属性里的写法 常用mark 多个DL遍历添加一个父级DIV
标记用 js变量比如url链接一般都是a里面的href属性值 在js里单引号链接 以后再忘记就能有地方找了 例子: /* 添加1200 居中div 包裹 获取元素集合 上层元素100% * @ele ...
- JS里的居民们7-对象和数组转换
编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, ...
- ffplay的快捷键以及选项 FFmpeg 基本用法 FFmpeg常用基本命令 ffmpeg常用转换命令,支持WAV转AMR
ffmpeg -i 32_mkv_h264_718x480_ac3.mkv -codec copy -bsf:v h264_mp4toannexb -f mpegts xx.ts ./ffmpeg ...
- js里cookie操作
原生js操作cookie 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次 ...
- JS里设定延时:js中SetInterval与setTimeout用法
js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...
- 前端要革命?看我在js里写SQL
在日新月异的前端领域中,前端工程师能做的事情越来越多,自从nodejs出现后,前端越来越有革了传统后端命的趋势,本文就再补一刀,详细解读如何在js代码中执行标准的SQL语句 为什么要在js里写SQL? ...
- 正则表达式,js里的正则应用
我爱撸码,撸码使我感到快乐!大家好,我是Counter.好吧已经到凌晨了,其实还是蛮困的,体力不支了,想了想还是把今天任务结束掉吧,为期5天,又重新把JavaScript以及jQuery给大致过了一遍 ...
- canvas里设置width和css里设置width和js里设置width的区别
canvas.width 和 它的style.width是不一样的: canvas是个画布,有他自己的宽和高(默认是没有单位的纯数字),就是canvas.width和canvas.height的宽和高 ...
随机推荐
- IO中同步异步,阻塞与非阻塞 -- 通俗篇
一.同步与异步 同步/异步, 它们是消息的通知机制 1. 概念解释 A. 同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例 ...
- Linux 编译安装、压缩打包、定时任务
目录 Linux 编译安装 知识储备: wget命令 编译安装 Linux 压缩打包 gzip压缩 bzip2压缩 tar打包 Linux 定时任务 相关文件及操作 Linux 编译安装 编译安装就是 ...
- 日程表(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 Project默认打开时,在功能区下面会有一个[日程表],如果不见了,那肯定里什么时候手贱关掉的,不要紧,还可以到[视图] ...
- Excel的内置功能,其实真的是够用了。(学习观)
很多人问我,学好Excel是不是要背好多函数,是不是要会写VBA代码? 我说,那得看你能放多少时间和精力在Excel上. Excel的内置功能,其实真的是够用了:觉得不够用的,花几十块钱买个插件,也差 ...
- 日历的种类(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 日历有三种:标准日历.24小时日历和夜班日历. 设置的位置在[项目]>[属性]>[更改工作时间]>[ ...
- dart系列之:如丝滑般柔顺,操作文件和目录
目录 简介 File 读取整个文件 以流的形式读取文件 随机访问 文件的写入 处理异常 总结 简介 文件操作是IO中非常常见的一种操作,那么对应dart语言来说,操作文件是不是很简单呢?实际上dart ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- python 银行管理系统
这是一个使用python连接mysql的例子 涉及到类的使用 import pymysql import function as f def mysql(): db=pymysql.connect(h ...
- SpringBoot整合quartz框架启动定时任务报错:the given trigger will never fire.
org.quartz.SchedulerException: Based on configured schedule, the given trigger 'DEFAULT.cron_b1a91e1 ...
- JS获取当前页面的网址链接
JavaScript获取当前页面的URL .链接地址 var currUrl = decodeURIComponent(location.href.split('#')[0]); java获取方式:h ...