zoukankan      html  css  js  c++  java
  • 数据类型转换

    js是弱类型语言,定义不像后台一样严格使用string、int、boolean等,而是直接一个var定义所有的对象。

    玩数据类型转换之前,我们先讲讲各种数据的作用和形式。

    string     字符串

    Number  数字

    Boolean  布尔类型

    NaN          数字类型,表示数字的空和错误

    undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。

    undefined典型用法:

      (1)变量被声明了,但没有赋值时,就等于undefined。

      (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

      (3)对象没有赋值的属性,该属性的值为undefined。

      (4)函数没有返回值时,默认返回undefined。

      (5)转换string失败会返回一个undefined。

    null 对象为空,没有这个对象。

    复杂数据类型 
    Data Array function Object  暂时不需要理解。

    现在开始数据转换。

    转string:

    Number();用法 Number(a);

    toString();用法 a.toString();
    String(); 用法 String(a);

    万物皆对象,所有的对象几乎都有.toString();

    null , undefined不能toString(),如果要强制转换只能String();

    toString()能转换的,String()都可以转换。

    隐式转换:+""       隐式转换不好说,看代码更清晰。

    转number

    Number();一次性全部转换,如果其中某个字符串不是数字,那么返回NaN

    parseInt();只能转换成对应的整数,从第一个字符串开始转,如果其中某个字符串不是数字,那么返回这个字符串前面的数字。

    parseFloat();只能转换成对应有小数的数,从第一个字符串开始转,如果其中某个字符串不是数字,那么返回这个字符串前面的数字。

    隐式转换:+ - * / %  如果两个字符串是纯数字的话,可以用这五个隐式转换掉。

    转Boolean

    Boolean();都可以转换。

    转换为flase的有:NaN、null、""、undefined、0
    转换为true的有:"123" 123,准确的说除了上面那几个转成false的之外,其他全是转成true

    隐式转换:!!a

    上面,我看着也乱,我还是喜欢看代码,接下来我写代码介绍吧。有些用法根本不是介绍就可以介绍清楚的。

    <script>
            var str="123";
            var num=123;
            var bool=false;
            var arr=new Array(1,"1");
            var obj=new Object();obj.name="huo an";
            var nu=null;
            var unde=undefined;
            var strkong="";
            function asd(){}
    
            console.log("转string,顺便也请注意隐式转换");
            console.log(num.toString()+"-"+typeof (num.toString()) +"-"+typeof (num+""));
            console.log(bool.toString()+"-"+typeof (bool.toString()) +"-"+typeof (bool+""));
            console.log(arr.toString()+"-"+typeof (arr.toString()) +"-"+typeof (arr+""));//装数组把里面的东西一起转成string了
            console.log(obj.toString()+"-"+typeof (obj.toString()) +"-"+typeof (obj+""));
            console.log(String(nu)+"-"+typeof (String(nu)) +"-"+typeof (nu+""));//null是一个特殊的,不能用tostring()否则会报错
    
            var str="123a"
            console.log("转number,顺便也请注意隐式转换");
            console.log("123"+"23" +"-"+ typeof ("123"+"23"));//这个是错误的,这还会是string;
            console.log("123"-"23" +"-"+ typeof ("123"-"23"));
            console.log("123"*"23" +"-"+ typeof ("123"*"23"));
            console.log("123"/"23" +"-"+ typeof ("123"/"23"));
            console.log("123"%"23" +"-"+ typeof ("123"%"23"));
            console.log("123"/"da" +"-"+ typeof ("123"%"23"));//字符串里若有英文,也能隐式转换,但成为number的NaN
            console.log(Number(str)+"-"+typeof (Number(str)));//返回NaN
            console.log(parseInt(str)+"-"+typeof (parseInt(str)));//返回123
            console.log(parseFloat(str)+"-"+typeof (parseFloat(str)) );//返回123.00
    
            console.log("转boolean,顺便也请注意隐式转换");
    //       除了 NaN、null、""、undefined、0这几个,其他都是true;
            console.log(Boolean(NaN));//false
            console.log(Boolean(null));//false
            console.log(Boolean(""));//false
            console.log(Boolean(undefined));//false
            console.log(Boolean(0));//false
            console.log(Boolean("asd123"));//true;
            console.log(Boolean(arr));
            var arr2=new Array(NaN,1);
            var arr3=new Array(1,NaN);
            var arr4=new Array(1);
            console.log(Boolean(arr2));//数组判断,
            console.log(Boolean(arr3));//数组判断,
            console.log(Boolean(arr4));//数组判断,都是true
    
            console.log(!!"asd123");//true
    </script>

      我的本意是想写代码比较清晰点,但莫名的变得不清晰了,我的锅。先这样将就着。

  • 相关阅读:
    python网络爬虫与信息提取——5.信息组织与提取方法
    python网络爬虫与信息提取——4.Beautiful Soup库入门
    python网络爬虫与信息提取——3.requests爬虫实战
    python网络爬虫与信息提取——2.网络爬虫排除标准robots
    python网络爬虫与信息提取——1.requests库入门
    时间戳转日期
    splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目
    数组、对象等的按值传递与数字、字符串不同
    用flex做垂直居中
    手机端页面自适应解决方案-rem布局
  • 原文地址:https://www.cnblogs.com/huoan/p/5719915.html
Copyright © 2011-2022 走看看