js变量和数据类型 | 8月更文挑战

103 阅读2分钟

基本数据类型

undefined类型

在声明变量时,没有对其初始化,那这个变量的值就是undefined,但是值得注意的是,在使用typeof操作符对未定义的变量执行时也返回undefined。

null类型

null值表示空对象指针,typeof返回object。其实undefined是由null派生而来的

undefined == null //true

number类型

        // 数值型   number
        // 小数叫做浮点数
        // var a=3;
        // var b=3.1;
        // var c=-5;
        // var d=-5.6;
        // var e=0xFF;//16进制
        // var f=065;//8进制
        // var g=3.1e+5;//科学计数法 3.1*10(5)5次幂
        // var h=3.5e-5;//科学计数法 3.5*10(-5) -5次幂
        // console.log(typeof g,g);
        // 定义的不一定和打印的结果完全相同,全部都会转换为10进制

boolean类型

各种数据类型转化为boolean为true的: 任何非空字符串、任何非零数字、任何对象
各种数据类型转化为false的:空字符串、0、NaN、null、undefined

string类型

        // 数据类型  数据的分类  字符类型,数值类型,布尔类型,未定义型,空值,对象型

        // 字符型   所有使用 ''  ""  ``都是字符型  string
        // var a="a";
        // var b='1';
        // var c=`true`;
        // var d='你好这个非常"不错"';
        // console.log(a,b,c,d);
        // console.log(typeof a);
        // console.log(typeof(a));

数值转字符串

var a=15.22
var b=String(a)//类型强制转换
a=a+""//隐式转换,自动执行String(a) 
//例
 var color=0x0000FFFF;
 console.log((color<<8).toString(16))
 toFixed(小数点位数)  转换为字符串,并且保留小数点位数,自动四舍五入
 a=a.toFixed(2);
 console.log(a);
 a.toExponential();//
 a.toPrecision();//

数值转布尔值

除了0以外所有的数值转换为布尔值都是true 0转换为布尔值是false;a=Boolean(a);

数值转对象

 var a=0;
 a=Object(a);//数值型对象,存储在堆中
 console.log(typeof a);

字符串转为数值

  var a="a";
  var a="3.2"
  a=Number(a);//强制转换为数值类型

  a=parseInt(a);//转换为整数
  a=parseFloat(a);//转换为浮点数
        
  var a="101";
  a=parseInt(a,2);//将字符串转换为2进制
  var color="FF0000";
  color=parseInt(color,16);
  console.log(color);
        
  a=parseFloat();//不能转换进制


  var b="32 1";
  var b="32 "
  b=Number(b);
  b=parseInt(b);
  b=parseFloat(b);
  console.log(b);
// NaN  数值类型中的非数值
// 隐式转换遵从Number()转换方法

字符串转为布尔值

        // 仅空字符串转换为布尔值时,是false,除此之外全部是true
        // var str="";
        // str=Boolean(str);
        // console.log(str);

字符串转为对象

        // 6、字符串转换为对象
        // var str="aaa";
        // str=Object(str);
        // 转换为字符串对象
        // console.log(str);
        var str=" a a  ";
        str=str.trim();//清除字符串前后空格
        console.log(str);

undefined null转换为字符串和数值

         var a;
         var b=null;
         a=String(a);
         b=String(b);
         console.log(b);

         a=Number(a);//转换为数值是NaN
         b=Number(b);//转换为数值是0
        
         a=parseInt(a);//NaN
         b=parseInt(b);//NaN
         console.log(a,b);