递增和递减分别有前置型和后置型,这里不作区分。

下面的代码全部是后置型递增:

var str = "z";
console.log(str++)        //NaN
console.log(typeof str)     //number
复制代码
var str = "123abc";
console.log(str++)        //NaN
console.log(typeof str)     //number
复制代码
var str = "123";
console.log(str++)        //123
console.log(typeof str)     //number
复制代码

以上三段代码分别对应着三种字符串:

  1. 不包含有效数字字符的字符串
  2. 数字和其他字符结合的字符串,不是有效的数字字符串,也属于1的一种
  3. 包含有效数字字符的字符串

一元操作符“++”,“- -”对于上面的这几种字符串,有如下规则:

1.在应用于一个包含有效数字字符的字符串时,先将其转化为数字值,再执行加减1。字符串变量变为数字变量。

2.在应用于一个不包含有效数字字符的字符串时,将变量的值设为NaN。字符串变量变为数字变量。

其中NaN是一种特殊的Number类型。

注意:

NaN instanceof Number  //false
复制代码

基本类型不能像这样检测类型,因为它不是Number构造函数的一个实例对象。

转载于:https://juejin.im/post/5cc7ab885188252af24b0a89

一元操作符“++”,“- ” 之强制转换数值相关推荐

  1. 一元操作符、强制类型转换表达式、乘除操作符、加法操作符、移位操作符、关系操作符、判等操作符、位操作符与逻辑操作符、条件与操作符、条件或操作符--运算机制与返回值

    操作符处理及返回值 先遣提示 一元操作符 前缀递增操作符 ++ 前缀递增操作符 - - 一元加号操作符 + 关于一元数值提升或二元数值提升 可以看这篇博客 一元减号操作符 - 这里涉及了 原码,反码, ...

  2. asp 强制转换浮点数值_C/C++中浮点数的编码存储

    浮点数也称做实型数据(实数),形式上就是数学中的小数.浮点型数据有两种表达方式: 一种是用数字和小数点表示的,如123.456: 另一种是用指数方式表示,如1.2e-6 或1.2E-6(1.2*10- ...

  3. Go 学习笔记(32)— 类型系统(命名类型、未命名类型、底层类型、类型强制转换、类型别名和新声明类型)

    1. 命名类型和未命名类型 1.1 命名类型 类型可以通过标识符来表示,这种类型称为命名类型( Named Type ). Go 语言的基本类型中有 20 个预声明简单类型都是命名类型, Go 语言还 ...

  4. php中int()强制转换,php下intval()和int强制转换使用的区别是什么

    php下intval()和int强制转换使用的区别是:1.[intval()]如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值:2.转换为int的PHP字符串,在使用之前 ...

  5. [Effective JavaScript 笔记]第59条:避免过度的强制转换

    js是弱类型语言.许多标准的操作符和代码库会把输入参数强制转换为期望的类型而不是抛出错误.如果未提供额外的逻辑,使用内置操作符的程序会继承这样的强制转换行为. functin square(x){re ...

  6. 一元操作符——递增和递减操作符(第一次写博客,紧张.)

    一元操作符,即只能操作一个值的操作符,是JS中最简单的操作符. 1.递增和递减操作符 分为2个版本:前置型和后置型.若使用前置递增操作符给一个数值加1,要把(++)放在数值前面: var a = 1; ...

  7. as和强制转换的区别

    as和强制转换之间最大的区别就在于如何处理用户自定义的转换.操作符 as和 is 都只检查被转换对象的运行时类型,并不执行其他的操作.如果被转换对象的运行时类型既不是所转换的目标类型,也不是其派生类型 ...

  8. MFC中强制转换总结

    由于类型转换经常出问题这里收集了一些常见的问题,下面是强制类型转换的科普: C++中的类型转换分为两种: 1.隐式类型转换: 2.显式类型转换. 而对于隐式变换,就是标准的转换,在很多时候,不经意间就 ...

  9. java 赋值,算术,一元操作符(翻译自Java Tutorials)

    原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2819621.html 英文出自 http://docs.oracle.com/ja ...

最新文章

  1. Keep 再融资以后
  2. 分享Kali Linux 2016.2第45周镜像
  3. centos系统查看资源使用情况的工具
  4. ASP.NET Core结合Nacos来完成配置管理和服务发现
  5. JAVA Thread线程异常监控
  6. ElasticSearch入门系列(三)文档,索引,搜索和聚合
  7. java list过滤完赋给自己_Java8对list集合进行排序、过滤、分组、去重、转map、遍历赋值等操作...
  8. python和office_Python在office开发中的应用
  9. 封装jQuery下载文件组件
  10. OpenCV--实现图像滑动窗口截取子图操作
  11. 笨办法学 Python · 续 练习 32:扫描器
  12. mysql 并行复制原理_MySQL 5.7 并行复制实现原理与调优
  13. 集群资源分配_推荐一款MySQL日常运维和集群管理的自动化平台--Arkcontrol
  14. php 识别图片指定区域,简单实现图片局部识别的方法
  15. C#使用Socket实现一个socket服务器与多个socket客户端通信
  16. 迪杰斯特拉算法c语言6,迪杰斯特拉算法C语言实现
  17. 记升级springboot1.X 到springboot2.3.5踩的坑
  18. 森林防火三维地理信息系统
  19. 电脑和手机好用的播放器
  20. 怎样用python中matplotlib模块直观的将股票数据展现出来

热门文章

  1. python字典序列化是什么意思_如何将Python字典序列化为字符串,然后回到字典?...
  2. python gridfs_python 将图片存入mongodb,读取图片,gridfs模块
  3. Selenium自动化测试框架
  4. java 鉴权_我爱java系列之---【JWT实现微服务鉴权(一)】
  5. redis分布式锁实现原理_redis分布式锁实现分析与实践
  6. confluence 编辑器这次没有加载_玩转爱普生打印机自带的任务编辑器Lite版
  7. html 元素怎么分类的,前端之Html元素的分类
  8. 机器视觉:面阵相机的传感器类型及实际应用分析
  9. stm32链接电脑提示无法识别的驱动设备
  10. C++实现输出内容存入到TXT文档中