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 相关文章推荐
JS自动适应的图片弹窗实例
Jun 29 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
vue webpack打包优化操作技巧
Feb 22 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
vue给组件传递不同的值方法
Sep 29 Javascript
实例讲解vue源码架构
Jan 24 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
vue路由实现登录拦截
Mar 24 Vue.js
关于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 EOT定界符的使用详解
2008/09/30 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
js控制frameSet示例
2013/09/10 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
python爬虫之xpath的基本使用详解
2018/04/18 Python
PyQt5实现下载进度条效果
2018/04/19 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
python实现简单多人聊天室
2018/12/11 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
Linux文件系统类型
2012/09/16 面试题
计算机科学系职业生涯规划书
2014/03/08 职场文书
小组口号大全
2014/06/09 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
初中教师个人工作总结
2015/02/10 职场文书
商务代表岗位职责
2015/02/15 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis