数据类型及类型转换

和Java的数据类型对比理解

  • Java的数据类型:byte short int lang char boolean float double
  • 但是javascript中不叫数据类型,叫原始类型,一共有5个
  • javascript变量的声明使用关键字 var
    • string 字符串
    • number 数字类型
    • boolean 布尔类型,true 和false
    • null
      • var a = new Date();
      • 获取对象的引用,null表示对象的引用时空,所有对象的引用都是object
    • undefined
      • 定义一个变量但是没有赋值的情况例如:
      • var a ;

数据类型分类

  • 数据类型
    1. string
    2. number
    3. boolean
    4. object
    5. function
  • 对象类型
    1. Object
    2. Date
    3. Array
  • 不包含任何值的类型
    1. null
    2. undefined

直接量

直接使用的这些数据叫做直接量

字符串(String)

特点:用引号引起来的文本

注意:
1. 这个引号既可以是单引号,也可以是双引号
2. 如果要在输出语句中输出双引号,可以把双引号放在单引号内
3. 也可以使用转义符 \
- \’ 单引号
- \” 双引号
- \n 换行
- \t 缩进
- \b 空格
- \r 回车
- \ \ 斜杠
4. + 号可以进行字符串的连接,字符串和数值类型使用+号连接,作用是连接符。

数值类型 (number)

整数,小数等一个具体的数值,
- +号进行数值连接,起到的作用的是运算符的作用
- NaN 全称:not a number 不是一个数
- 作用:用来表示数值的一种不正常的状态
这里写图片描述
这里写图片描述

布尔类型 boolean

  • true
  • false
//使用函数Number()把布尔值转换成number类型,true转换成1,false 是0 
var a = true;
var b = false ;
var c = Number(a);
alert(typeof a);
alert(typeof c);
alert(c);//1
alert(Number(b));//0
  • 用number类型转换成boolean类型,除了数字 1 可以转换成false,其他的都是true;
  • 使用string类型装换成boolean类型,除了空字符串是false,其他的 都是true;
var a = "";
var b = Boolean(a);
alert(b);//false 
  • object类型转换成boolean是true
  • 由于数组,和日期的类型都是object,所以他们的情况和 object一样

undefined

如果一个变量声明了但是没有赋值,那么就是undefined
这里写图片描述这里写图片描述

常用的关键字 typeof() 判断数据类型

使用:
- typeof(直接量)这里写图片描述
- typeof 直接量这里写图片描述

isNaN 判断一个数据是不是NaN

  • 如果这个数是一个非数值类型,那么返回true
  • 如果这个数是一个数值类型,那么返回false

变量

问题:在浏览器中输出我们输入的内容
这里写图片描述
- 变量:用来存储数据的,定义的变量是松散型的
1. 变量的声明 使用var关键字,比如:var a
2. 给变量赋值,使用 = 号,比如 a=”234”或者a=233
3. 变量的命名规则
- 变量名只能由英文,字母、下划线、&组成,数字 不能开头
- 变量名不能使用关键字和保留字
- 关键字:已经被javascript内部使用过的
- 保留字:还没有被javascript使用,但是可能有一天会被使用
这里写图片描述
4.变量的类型:给变量存储的是什么类型 ,变量就是什么类型的变量。

数据类型转换

强制转换
  • 转换成number

    • Number()
      1. 如果转换的内容可以转换成数字,那么就直接转换成数字
      2. 如果不可以就直接返回NaN
      3. 如果在内容中出现小数,那么小数位会保留
      4. 如果内容为空,那么转换成0
    • parseInt()

      1. 如果转换的内容可以转换成数字,那么就直接返回这个内容对应的数字
      2. 不过不可以返回NaN
      3. 如果带有小数,会直接去掉小数位
      4. 如果第一个字符是数字,会继续解析到结束,或者碰到不是数字的字符
        
        //使用Number() 转换成number类型
        var b = "34";
        b = Number(b);
        alert(typeof(b));
        //使用parseInt() 转换成number 类型
        var c = "34";
        c = parseInt(c);
        alert(typeof c);
        
    • parseFloat() 转换成小数
    • Boolean() 转换成布尔类型,除了下面几种情况是false,其他都是true

      var a = "";
      a= Boolean(a);
      console.log(typeof a);

      • 布尔值 false
      • 空字符串 var a = “”;
      • undefined
      • NaN
      • null
隐式转换
  • 转换成number类型

    • 使用基本的算数运算符都可以将字符转换成数字
      //使用基本的算数运算符,将字符串转换成number类型
          var a = "234";
          a = +a ;
          console.log(a);
          console.log(typeof a);
      
          var b = "232";
          b = b -1;
          console.log(b);
          console.log(typeof b);
      
          var c = "322";
          c = c * 2;
          prompt(c);
          prompt(typeof c);
      
          var b = "232";
          b = b /1;
          console.log(b);
          console.log(typeof b);
      
          var b = "232";
          b = b %2;
          console.log(b);
          console.log(typeof b);
  • 隐式转换成字符串String
    • 加上空字符串

      //转换成字符串只需要和 空字符串相加就可以
      var n = 1223;
      n = n +"";
      console.log(n);
      console.log(typeof n);
  • 转换成boolean类型

    • 使用感叹号!
      // 隐式转换成boolean类型使用感叹号 
      
      !,一个感叹号表示false
          var m = 3323;
          m = !m;
          console.log(m);
          console.log(typeof m);
          //两个感叹号表示true
          var m = 3323;
          m = !!m;
          console.log(m);
          console.log(typeof m);

各种类型的构造函数

  • 使用constructor 属性查看
  • 猜想:每一种数据类型的变量内部都是调用了一种构造方法创建的
  • underfined 没有构造函数
  • null 引用为空的变量没有构造函数
  • NaN 的数据类型是number ,有构造函数Number()
var arr = new Array();
var a = new Date();
var c = 133;
function add(){}
var duixiang = new Object();
alert(c.constructor);//function Number() { [native code] }
alert("hawh".constructor);//function String() { [native code] }
alert(true.constructor);//function Boolean() { [native code] }
alert(add.constructor);//function Function() { [native code] }
alert(arr.constructor);//function Array() { [native code] }
alert(a.constructor);//function Date() { [native code] }
alert(duixiang.constructor);//function Object() { [native code] }
  • -
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值