JavaScript中变量, 数据类型分类,数据类型的转化

一 、javascript的变量

  • 存储在内存中的带有名称的数据信息, 其中存储的数据信息在程序的执行过程中是可以改变的

      简言之:
              存储在内存中
              带有名称
              存储数据可以改变
    
  • 变量就是一个容器(存储数据的容器) ,这个容器有名称 , 容器中的存储的数据可以改变

  • 在计算机程序中, 数据是不能独立的存在 , 必须有存储数据的容器 , 就是变量
    (html语言中,input等标签 name属性的属性值 就是 存储标签数据的容器)

  • 定义变量 同时赋值存储的数据

        var 变量名称 = 表达式 ;
           var int = 100;
    
var

关键词 js定义的带有具体功能的英文单词
(告诉 计算机程序 正在声明和定义的是一个 变量)
定义变量时使用 ,调用执行变量时不需要使用

变量名称
   规则:(必须遵守的)
          1, 严格区分大小写
          2, 只能使用 英文 ,数字 , 下划线 , $  (其中$不推荐使用)
          3, 不要使用保留词 关键词
          
   规范: (建议遵守的 )
          1, 见名起义  即一看变量名称就是知道存储的是什么数据
          2, 推荐使用小驼峰命名法定义
              就是除第一个单词以外 其他单词首字符大写
                 例如:
                    username  ---  userName

=

和数学中的等于完全不同,
= 赋值符号 将右侧表达式的执行结果 赋值给 左侧变量存储

表达式

所谓的表达式就是具有具体数值数据的公式或者数值

分号

JavaScript程序最好使用分号结束

重复赋值:

对一个变量进行重复赋值, 后赋值的数据会覆盖之前赋值的数据 ,变量最终存储的是 最后一次赋值的数据.

        var int = 100;
        int = 200;
        //结果是 200

二 、数据类型的分类

javascript数据类型:
计算机程序中按照数据的存储方式将数据分为不同的数据类型, 不同的计算机程序 数据类型的分类不同.

    JavaScript数据类型的分类:
        简单数据类型(基本数据类型): 
             布尔类型
             数值类型
             字符串类型
             null
             undefined
        
        复杂数据类型(引用数据类型):
            函数
            数组
            对象
布尔类型 (boolean / bool)

用于比较判断的执行结果,只有两个数值 true / false 。

  • true 真 (正确)

  • false 假 (错误)

    注意说明: 这里的true和false 此时既不表示一个英文单词,也不是关键词, 只是一种 数值数据

字符串类型(string / str)
  • 一串由数字, 字母, 下划线等内容组成的数值数据

  • 必须使用定界符(’’ “” ``)包裹.

          单引号, 双引号, 反引号的区别:
                           单引号和双引号没有区别
                           反引号可以通过${} 来解析变量,单引号和双引号不能
                           反引号可以换行,单引号和双引号不能
    
  • 所有的定界符中不能嵌套定界符本身

    字符串中变量的输出:
    - 单引号, 双引号中不能解析变量
    - 输入的变量名称不会解析其中存储的数据数值, 只会输出变量名称的文字字符

           解决方法:
               1, ES6之前的语法形式  字符串拼接
                 方法:  使用 + 拼接字符串和变量
                  (就是将变量中存储的数据数值和字符串内容进行拼接,生成字符串和数值数据的内容)
               2, ES6新增语法形式 `` 模板字符串
                 在模板字符串中使用${} 来包裹 变量 就可以解析变量
    

综上所述,:
1、 字符串一定要有定界符
2、 有了定界符后,不管什么内容都是字符串
3、 单引号双引号没有区别,它俩都不能解析变量,不能换行, 要解析变量需要使用 + 来拼接字符串 和 变量
4、 反引号的模板字符串ES6新增的语法形式 串${变量}串 来解析变量.它可以换行

 <script>
         var str = "当前日期2021年d月d日";
         var d = 5;
         //语法拼接形式 串 + 串
         document.write('当前日期2021年'+ d +'月d日');
         document.write('当前日期2021年'+ d +'月'+ d +'日');

         //${}方法
         document.write(
             `当前日期2021年${d}月${d}日`
         );
     </script>
数值类型
整数 int (正整数 0 负整数)

其他进制整数的存储和输出语法:

         1, 不管是什么进制的整数,输出都按照十进制数值输出, 也就是即使存储的数值是十六进制,也会转化为十进制数值输出
         2, 其他进制整数的存储语法形式:
             二进制 数值前添加0b / 0B
                  0 1
             八进制 数值前添加0o / 0O
                  0 1 2 3 4 5 6 7
             十进制  直接存储
                  0 1 2 3 4 5 6 7 8 9
             十六进制 数值前添加0x /0X
                  0 1 2 3 4 5 6 7 8 9 a b c d e f
         3, 按照指定的进制输出数值
             变量.toString(进制)
                    - 将变量中存储的数值转化为指定的进制输出 ,进制的范围是2-36         
浮点数 (float)

就是数学中的小数.
注意:

        1, 浮点数的有效数值在计算机程序中 浮点整数部分 + 小数部分 最多 17位.
        2, 浮点数的误差/精度丢失  (在直接参与运算时,一定会出现误差,实际项目中,浮点数要参与运算或者比较时,一定要做一些特殊的处理)
        3, 科学计数法 (是一种表示数字的方式)
          使用科学技术法表示的数值都按照浮点数计算
          2e3  意思是 2乘以10的3次方 
          (使用科学计数法表示的数值一定按照浮点数处理)
NaN

表示当前数值的数据类型是数值类型,但是不是一个具体的数字.
注意:

   1, 有NaN参与的运算,结果就一定是NaN.
   2, 两个NaN比较判断 结果一定是 不相等.
undefined

undefined 是 JavaScript定义的一种数据类型
没有正确赋值的变量, JavaScript 会自动赋值 , undefined是没有赋值的结果,本质上是错误的语法操作.

null

给变量赋值的空值

     null和undefined 都可以作为数值直接赋值给变量

三 、数据类型的转化

  • JavaScript 是 弱类型的计算机语言,对于变量存储数据的数据类型没有限制要求, 也就是一个变量中可以存储任意的数据类型。
  • 计算机程序执行过程中,执行某些程序时 需要 指定的数据类型参与程序的执行,需要将当前变量储存的数据类型转化为指定的数据类型.
数据类型转化的方式:
自动转化 — 计算机程序自动完成的数据类型转化
  • 1\ 其他类型转化为字符串:

           什么时候触发自动转化?
                字符串拼接时,触发其他数据类型自动转化为字符串(字符串拼接,理论上只能字符串和字符串进行拼接操作,其他类型和字符串拼接的时候,其他类型自动转化为字符串进行拼接)
    
           转化原则是什么?
              将变量中存储的数据转化为对应的字符串内容。
              (简单理解:写什么拼什么)
    
  • 2\ 其他类型转化为数值类型:

             什么时候触发自动转化?
                 算数运算时
             转化原则?
                 转化为 0
                   (变量值为  false null ''    '    ')     
                 转化为 1
                   ( 变量值为  true  )
                 转化为对应的数字
                   ( 变量值为  符合数字语法规范的字符串)
                 NaN  
                  (变量值为  不符合数字语法规范的字符串.)
    
  • 3\ 其他类型转化为boolean类型:

              什么时候触发自动转化?
                    if语句
                    switch
                    三元运算
                 
              转化原则:
                  false
                     ( 变量值为  0 '' false null undefined NaN)
                  true
                     (变量值为   其他情况都转化为true)
                     '   '是true
    
强制转化 —程序员人为进行的数据类型转化
  • 1/ 强制转化为布尔类型

          Boolean( 变量 /表达式);
              转化原则和自动转化为布尔类型的原则完全相同
                 false (值为:  0  0.000  ''  NaN  null  undefined )
                 true (其他情况都转化为true)
         Boolean() 不会改变变量中存储的原始数据
    
  • 2/ 强制转化为字符串类型

         String(变量/表达式);
           转化的原则与自动转化字符串的原则相同
           不会改变变量中存储的原始数据
         
         变量.toString(进制);
              如果变量存储的是整数数值,可以设定转化的进制
              进制范围: 2~36
              变量如果存储的是null / undefined,不支持
    
         变量/表达式 + ''
    
  • 3/ 强制转化为数值类型

         Number()
            转化原则和自动原则完全相同
            不会改变变量存储的原始数值
              转化为1
                 Number(true);
              转化为0
                 Number(false);
                 Number('');
                 Number(null);
                 Number('  ');
             转化为NaN (不符合数字规范的字符串)
                 Number(undefined);
                 Number('100a');
                 Number('a100');   
             转化为对应的数值 (符合数字规范的字符串)
                 Number('100');
                 Number('100.123');
                 Number('2e3');           
                     
         parseInt()
            获取整数部分  (从左起获取整数部分, 如果左起第一个字符不符合整数语法规范 , 结果是NaN)
            不会改变变量储存的原始数值
    
               console.log( parseInt( true ) ) ;   
               console.log( parseInt( false ) ) ;
               console.log( parseInt( undefined ) ) ;
               console.log( parseInt( null )) ;
               结果都是NaN
               
         parseFloat()
            获取浮点数部分   (从左起获取浮点数部分, 如果左起第一个字符不符合浮点数语法规范 , 结果是NaN)
            不会改变变量储存的原始数据
    

四、 数据类型的判断

  • typeof( 变量/表达式) 或者 typeof 变量/表达式

         用于判断变量/表达式的数据类型。
         它用于判断数据类型不是非常准确。
          null [数组]  {对象} 判断结果都是 object
    

    typeof ( typeof (变量/ 表达式) )
    执行结果是字符串类型,
    也就是先对内层typeof(变量/表达式)的结果, 再判断这个结果的数据类型
    所以结果是字符串

  • isNaN( 变量/表达式)
    — 判断 变量/表达式 存储的数据是不是NaN
    如果存储的是NaN, 结果为true
    如果存储的不是NaN, 结果为false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值