review javascript 03:javascript数据类型

(1)知识点

不同的数据类型,都有不同的用途

  • (1.1)数据类型分类:【原始数据类型】和【引用数据类型】
  • (1.2)javascript数据类型是弱类型
  • (1.3)javascript数据类型转换

(2)细化

(2.1)数据类型分类

原始数据类型:string、number、boolean、undefined、null

  • +运算中,如果参与运算的都是字符串,则加法变为字符串拼接
  • 按指定小数位数四舍五入
n.toFixed(2)-->将计算结果按2位小数四舍五入
  • typeof 运算符对于 null 值会返回 "Object"
  • console.log(null == undefined) //true

引用数据类型:Object、Array、Date、Function、RegExp、基本包装类型(String、Number、Boolean)
参考:http://blog.csdn.net/liangshiquan1/article/details/49909825

(2.2)javascript数据类型是弱类型

  • 声明变量时,不用考虑变量中将要存储的数据类型
  • 赋值时,动态判断数据的类型;同一个变量,先后可保存不同类型的数据。
  • 运算时,js会根据自己的需要,动态转换数据类型

(2.3)javascript数据类型转换

隐式类型转换

  • 默认一切转数字类型,做算数计算
    boolean类型:true-->1 false-->0
  • +法中,只要有一个是字符串,都转为字符串,+变为字符串拼接;其他类型转字符串: 在字面量前后直接加引号
  • 当无法转为数字时,或无法正常计算时,结果永远为NaN;加法计算中,碰上字符串,也会转为"NaN"

** 强制类型转换**

  • 任意类型转为string
    两种转换形式:
    var str=x.toString(); //不能转为undefined,null
    var str=String(x); //相当于隐式转换

  • 任意类型转为number
    var n=Number(x); //相当于隐式转换

  • string转为number
    (1)to 整数:var n=parseInt(str);
    如果传入的不是字符串,则先隐式转为String
    原理:从头开始读取字符串中每个字符,跳过开头的空字符,只读取数字字符,只要碰到第一个不是数字的字符,就退出,不认识小数点。

Number(x) vs parseInt(str):
Number只认识纯数字组成的字符串,Number可转boolean类型
parseInt(str)认识包含非数字字符的字符串开头位置的数字,parseInt转不了boolean

(2)to 浮点数:var n=parseFloat(str);
用法和parseInt用法完全一样,只认第一个碰到的小数点。

  • 任意类型转为boolean
    var bool=Boolean(x);
" "   0    NaN   undefined   null -->false 
其余都是true

PS:所有从页面获取到的都是字符串


(3)实践

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javascript数据类型</title>
</head>
<body>
    
<script type="text/javascript">
    init();
    function init(){
        console.log(undefined==null);  //true
        testTpyeof();
        judge();
    }
    
    function testTpyeof(){
        console.log(typeof null);    //object
        console.log(typeof 2);    //number
        console.log(typeof '2');    //string
    }
    
    //默认一切转数字类型,做算数计算
    function judge(){
        var a=2;
        var b='2';
        console.log(a==b);    //true
        console.log(a+b+true);    //22ture
        console.log(a+b+"true");    //22true
    }
    
</script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容