JavaScript数据类型转换的注意事项


Posted in Javascript onJuly 31, 2016

1.字符串的不可变性 

字符串定义了后,会一直占据内存空间,企鹅该处内存空间(栈)不可被重新赋值。

2.短路运算

||、&& 二元运算符,返回参与运算的操作数的原值(原数据类型和原数据),

运算结束后,返回导致运算结束的那个操作数。

3.三元运算符

code1?code2:code3;   与if-else 不同:

返回code2或code3的值----code2,code3   都可以空的{}代替;

   

   不能写break,continue。

4.NaN

NaN !=NaN,

任何NaN参与的数学运算,其结果都是NaN

有NaN参与的条件表达式:    比较运算符 >/>=/</<=/==/===     运算结果为false

 !==/!=

  运算结果为true

<script>
  var a;
  console.log(Boolean(NaN>=4));
  console.log(Boolean(NaN<4));
  console.log(Boolean(NaN=4));
  console.log(Boolean(NaN==4));
  console.log(Boolean(a=4));
  console.log(NaN);
  console.log(a);
  if(NaN==NaN){
    a = "NaN==NaN";
  }
  var b;
  if(NaN!==NaN){
    b = "NaN!=NaN";
  }
  console.log(a+"\n"+b);
</script>

5. JS 简单数据类型的转换---特殊情况演示
 

数据:0,“”,false,null,undefined,"123abc"等

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    div {
      line-height: 24px;
      margin: 0;
      padding: 0;
    }
    .one {
      width: 920px;
      position: absolute;
      left: 50%;
      top: 50%;
      margin-left: -460px;
      margin-top: -240px;
    }
    .all {
      float: left;
      border: 2px solid #000000;
    }
    .all-top {
      font-size: 20px;
      font-weight: bold;
    }
    .all-bottom {
      line-height: 48px;
      font-size: 16px;
    }
    .details {
      float: left;
      border: 2px solid #000000;
      line-height: 24px;
      margin-left: -2px;
    }
    .details:hover {
      position: relative;
      border: 2px solid #ff0000;
    }
    .line-long {
      border-top: 2px solid #000000;
      height: 0;
      width: 908px;
    }
    .line-short {
      border-top: 2px dashed #000000;
      height: 0;
      width: 742px;
      margin-left: 166px;
    }
  </style>
  <script>
    document.write("<div class='one'>");
    function f1() {
      return typeof res[res.length - 1];
    }
    var arr = [0, "", false, null, undefined, NaN, 6.66, -9, "abc124", "-12.23abc23", "qwer", "s s"];
    document.write("<div class='all'><div class='all-top'>" + "  原数据及类型" + "</br>" + "转换方法  </div>" + "<div class='all-bottom'>" + "+" + "</br>" + "Number()" + "</br>" + "parseInt()" + "</br>" + "parseFloat()" + "</br>" + "\"\"" + "</br>" + ".toString" + "</br>" + "String()" + "</br>" + "!!" + "</br>" + "Boolean()" + "</br>" + "</div></div>")
    for (var i = 0; i < arr.length; i++) {
      switch (true) {
        case arr[i] === "":
        {
          var res = ['""'];
          break;
        }
        default :
        {
          var res = [arr[i] + ""];
        }
      }
      res[res.length] = typeof arr[i];
      res[res.length] = +arr[i];
      res[res.length] = f1();
      res[res.length] = Number(arr[i]);
      res[res.length] = f1();
      res[res.length] = parseInt(arr[i]);
      res[res.length] = f1();
      res[res.length] = parseFloat(arr[i]);
      res[res.length] = f1();
      res[res.length] = arr[i] + "";
      res[res.length] = f1();
      if (i == 3 || i == 4) {//null 和undefined没有.toString()方法,导致报错
        res[res.length] = "报错";
        res[res.length] = "报错";
      } else {
        res[res.length] = (arr[i]).toString();
        res[res.length] = f1();
      }
      res[res.length] = String(arr[i]);
      res[res.length] = f1();
      res[res.length] = !!arr[i];
      res[res.length] = f1();
      res[res.length] = Boolean(arr[i]);
      res[res.length] = f1();

      var resString = res.join("<br>");
      document.write("<div class='details'>" + resString + "</br>" + "</div>");
    }
    var j = 22;
    for (var i = 0; i < 9; i++) {
      document.write("<div class='line-short' style='margin-top:" + j + "px'></div>")
      document.write("<div class='line-long' style='margin-top:" + j + "px'></div>")
    }
    document.write("</div>");
  </script>
</head>
<body>
</body>
</html>

以上就是本文给大家分享的全部内容了,希望大家能够喜欢

Javascript 相关文章推荐
使用JQuery实现Ctrl+Enter提交表单的方法
Oct 22 Javascript
js改变html的原有内容实现方法
Oct 05 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
bootstrap按钮插件(Button)使用方法解析
Jan 13 Javascript
ES6新特性五:Set与Map的数据结构实例分析
Apr 21 Javascript
JS中去掉array中重复元素的方法
May 26 Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 Javascript
详解Vue中的scoped及穿透方法
Apr 18 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 #Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 #Javascript
AngularJS ng-change 指令的详解及简单实例
Jul 30 #Javascript
Javascript中级语法快速入手
Jul 30 #Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 #Javascript
AngularJS ng-bind-template 指令详解
Jul 30 #Javascript
AngularJS ng-bind-html 指令详解及实例代码
Jul 30 #Javascript
You might like
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
详解Python中的__init__和__new__
2014/03/12 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
python随机数分布random测试
2018/08/27 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
如何将字串String转换成整数int
2015/02/21 面试题
企业治理工作自我评价
2013/09/26 职场文书
好的自荐信的要求
2013/10/30 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python