一、数据类型的转换

  1. 数据类型的转换方法

    • 强制转换(显示转换,主动转换)

      • 字符转数值

        • parseInt(要转换的数值或变量)

          • 转整数
          • 从左向右依次转换,遇到第一个非数字的字符,停止转换
          • 忽略小数点后的内容,其实是将小数点识别成了非数字,所以没有四舍五入
          • 如果第一位就是非数字,直接 NaN
            • NaN:not a number
            • 不是一个数字的数值型数据,非法的数值运算结果
        • parseFloat(要转换的数值或变量)

          • 转小数
          • 从左向右依次转换,遇到第一个非数字的字符,停止转换
          • 可以识别小数点
          • 如果第一位就是非数字,直接 NaN
            • NaN:not a number
            • 不是一个数字的数值型数据,非法的数值运算结果
        • Math.round(要转换的数值或变量)

          • 四舍五入
          • Math.round()不是专门做字符转数值的,专门做取整
          • 严格转换,只要出现非数字就是NaN
          • 取最近的整数
        • Number(要转换的数值或变量)

          • 直接转
          • Number()不是专门做字符转数值的,专门做系统内置的构造函数,用来创建数值对象
          • 严格转换,只要出现非数字就是NaN
          • 直接转换,不分小数整数
      • 数值转字符

        • 数值变量.toString()

          • 直接转换,相当于加个引号
        • 数值变量.toFixed(n)

          • 保留n位小数 直接转换,相当于加个引号
      • 其他类型转换

        • 其他转布尔
        • 布尔转数值
        • 其他转字符
    • 隐式转换(被动转换)

      • 情况和规则:
        1. 算数运算

          • +两边只要出现字符,结果必然为字符
          • -*/%结果必然是数值(字符转数值)
        2. 关系运算
          • ><>=<=两边那只要出现数值,那么另一边也会转为数值,进行比较

二、数据的运算符

  1. 算数运算符

    • + 加号、加法

      • +在js中不是单纯的加法:

        • 当加号两边都是数值型数据时,是加法运算
        • 两边任意一边出现字符就变成了拼接就不是加法,+已经不是单纯的加法了,变成了拼接,拼接就是将两个数组,直接组合起来
    • -*/%
      • 就是正常的数学运算
      • 就算两边不是数值,也会默认转成数值,进行运算
      • 如果某个数据不能转成数值,就会得到NaN
  2. 关系运算符 - 结果是布尔值

    • ><>=<=

      • 只要又一边出现数值,都是数值的比较规则
      • 如果都是字符,才是字符的比较规则:逐位比较,得到结果,就停止
    • !===
      • 会发生隐式类型转换,只比较大小,不比较类型
    • !=====
      • 不会发生隐式类型转换,不仅比较大小,还比较类型
  3. 逻辑运算符 - 主要操作布尔值

    • 或 ||

      • 或的规则:两边只要出现true,结果就是true,必须都为false,结果踩死false
    • 且 &&
      • 且的规则:两边只要出现false,结果就是false,必须都为true,结果踩死true
    • 非 !
      • 取反
  4. 赋值运算符

    • =,+=,-=,*=,/=,%=
    • 先计算,再赋值 c1 = c1 + 10; c1 += 10;
  5. 一元运算符

    • ++自增

    • 增加1

    • 前后之分

      • 前自增++n:先计算,后使用
      • 后自增n++:先使用,后计算
    • --自减

    • 减少1

    • 前后之分

      • 前自增--n:先计算,后使用
      • 后自增n--:先使用,后计算

JS数据类型转换问题的更多相关文章

  1. JS 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  2. JS数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  3. js笔记——js数据类型转换

    以下内容摘录自阮一峰的<语法概述 -- JavaScript 标准参考教程(alpha)>章节『数据类型转换』,以做备忘.更多内容请查看原文. JavaScript是一种动态类型语言,变量 ...

  4. {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换

    参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...

  5. JS 数据类型转换以其他

    JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值. 同时,在程序运行过程中,类型会被自动确认的.因此,这就是涉及到数据的类型转换.在 JS 的世界中,数据类型转换 ...

  6. js数据类型转换 ----流程控制

    数据类型转换: //number转换成str // var str=a+''; // console.log(str); // console.log(typeof str); //转换成字符串了 v ...

  7. JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换

    1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...

  8. JS的数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  9. 数据类型转换,JS操作HTML

    数据类型转换 1.自动转换(在某种运算环境下) Number环境 String环境 Boolean环境 2.强制类型转换 Number() 字符串:纯数字和空字符转为正常数字,其他NaN 布尔值:tu ...

随机推荐

  1. openldap 双主模式部署

    规划两台机器 系统版本centos7.5 master1上部署ldap: 一.安装启动openldap软件 yum -y install openldap compat-openldap openld ...

  2. P3343-[ZJOI2015]地震后的幻想乡【dp,数学期望】

    正题 题目链接:https://www.luogu.com.cn/problem/P3343 题目大意 给出\(n\)个点的一张无向图,每条边被修复的时间是\([0,1]\)的一个随机实数,求这张图联 ...

  3. Redis之品鉴之旅(七)

    分布式锁 1)阻塞锁: 尝试在redis中创建一个字符串结构缓存,方法传入的key,value为锁的过期时间timeout的时间戳. 若redis中没有这个key,则创建成功(即抢到锁),然后立即返回 ...

  4. MD5加密算法的实现方式

    MD5加密算法 MD5在我们平时项目中运用比较多,尤其是在用户注册的时候,密码存入数据库时可以利用MD5算法加密后存入,可以保证数据的安全性. 代码实现 public final class Md5U ...

  5. Python:PNG图像生成MP4

    Python:PNG图像生成MP4 需求 需要将多张*.PNG图像,生成mp4格式的视频文件. 实现 利用Python中image库生成*.gif格式图像,但是图片未经压缩,文件体量较大. movie ...

  6. 当一个 Pod 被调度时,Kubernetes 内部发生了什么?

    在 Kubernetes 中,调度是指将 Pod 放置到合适的 Node 上,然后对应 Node 上的 Kubelet 才能够运行这些 Pod . kube-scheduler 是集群控制平面的主要组 ...

  7. 10.12 LNMP

    yum install nginx php php-fpm mariadb-server php-mysql php.conf server { listen 8000; # pass the PHP ...

  8. 使用CEF(一)— 起步

    使用CEF(一)- 起步 介绍 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Li ...

  9. postgresql高可用集群部署

    一.概况 1.概念 pgsql高可用集群采用postgresql+etcd+patroni+haproxy+keepalived等软件实现,以postgresql做数据库,etcd存储集群状态,pat ...

  10. 沟谷网络的提取及沟壑密度的计算(ArcPy实现)

    一.背景 沟壑密度是描述地面被水道切割破碎程度的一个指标.沟壑密度是气候.地形.岩性.植被等因素综合影响的反映.沟壑密度越大,地面越破碎,平均坡度增大,地表物质稳定性降低,且易形成地表径流,土壤侵蚀加 ...