当前位置: 代码迷 >> 综合 >> Day02 Javascript数据类型转换
  详细解决方案

Day02 Javascript数据类型转换

热度:32   发布时间:2023-12-06 10:28:56.0

一、数据类型转换

1.定义

javascript 是弱类型的

体现:对于变量存储的数据类型没有限制要求

也就是一个变量中可以存储任意的数据类型

计算机程序执行过程中 执行某些程序时 需要 指定的数据类型参与程序的执行

需要将 当前变量储存的数据类型 转化为指定的数据类型

2.数据类型的分类

(1)基本数据类型/简单数据类型

  1. 数值类型(number)

    • 整数,一切数字都是数值类型(包括二进制,八进制,十进制,十六进制等)

      默认存储方式是 按照 十进制数值存储:变量.toString( 进制 ) 进制范围是 2 - 36

                                          二进制  数值前 添加 0b / 0B

                                          八进制  数值前 添加 0o / 0O

                                        十六进制  数值前 添加 0x / 0X

    • 浮点数(小数)  有效数值 17位 (整数部分 加 小数部分 最多 17位)

               误差/精度丢失

                              因为 在 计算机程序中 浮点数的存储方式 是 存储 近似值, 浮点数 直接参与 比较判断 或者 数学运算 误差一定存在

       在 特殊情况下 会体现误差, 实际项目中 使用 浮点数 需要做特殊处理                        科学计数法(数e数)数值1 乘以 10 的 数值2 次方

                                          所有的科学计数法的数值都是浮点树类型

    • NaN(not a number)表示 是 数值类型 但是 不是 某一个具体的数字, 一个非数字

      往往是 有非数字参与运算的结果 两个 NaN 比较判断 永远是 false有 NaN 参与的运算 执行结果是 NaN

  2. 字符串类型(string)

    • 被引号包裹的所有内容(可以是单引号也可以是双引号)不能换行,不能解析变量,如果要解析变量 需要使用 字符串拼接语法‘串’+变量+‘串’;

       ``  模板字符串  是 ES6 新增的语法形式  可以换行 可以解析变量    ${变量} `

  3. 布尔类型(boolean)

    • 只有两个(true 或者 false

    • 往往是 比较判断的结果,可以作为数值直接赋值给变量,要小写 不要加引号

  4. null类型(null)

    • 只有一个,就是 null,表示空的意思

  5. undefined类型(undefined)

    • 只有一个,就是 undefined,表示没有值的意思

(2)复杂数据类型(引用数据类型)

  1. 对象类型(object)

  2. 函数类型(function)

  3. 数组

3.数据类型转化的方式

1.自动转化 计算机程序自动完成的数据类型转化

什么时候触发自动转化

转化的原则

(1).其他数据类型转化成数值 Number(变量)

  • 转化为0的有  ‘’   ‘   ’   false   null
  • 转化为1 的  true
  • 转化为对应的数字 ( 变量值为 符合数字语法规范的字符串) 对应的数值:符合数字规范的字符串
  • NaN  NaN undefined (变量值为 不符合数字语法规范的字符串.)

(2).其他数据类型转化成字符串类型

字符串拼接时,自动转化为字符串类型

转化原则:数据数值 转化对应的 字符串

(3).转化为布尔类型Boolean(变量/表达式);

          什么时候触发自动转化? if语句 switch 三元运算

          转化原则和自动转化布尔类型的原则完全相同

          false(6种)

          0   0.000  ''   NaN   null   underfined

          true

          其他情况都转化为true

          Boolean()不会改变变量中存储的原始数据

2.强制转化 程序员人为进行的数据类型转化

// 弱类型存储没有要求,可任意存储,,,强类型是固定的

 (1)强制转化为布尔类型:Boolean( 变量 / 表达式 )

            转化原则和自动转化完全相同     不会改变 变量中存储的原始数值

(2)强制转化为字符串类型:String( 变量 / 表达式 )

         转化原则和自动转化完全相同 不会改变 变量中存储的原始数值

       变量.toString(  )

                 转化原则和自动转化完全相同,不会改变 变量中存储的原始数值

                 如果变量储存 null / undefined 不支持 变量.toString()

                 如果变量储存的是数值 可以定义 转化的进制 范围 2 - 36

(3)强制转化为数值类型: Number( 变量 / 表达式 )

                 转化原则和自动转化完全相同,不会改变 变量中存储的原始数值

                 1. parseInt( 变量 / 表达式 )

                      获取 整数部分 :从左起 获取符合整数语法规范的部分

                            如果 左起第一个字符不符合整数语法规范 结果是 NaN

                  2.NaN:true false null undefined  'a100'

                  3.获取整数部分

                                    100         100

                                    100.1213    100

                                    '100a'      100

                                    '2e3'       2

                    4. parseFloat( 变量 / 表达式 )

                            获取 浮点数部分

                            从左起 获取符合浮点数语法规范的部分

                            如果 左起第一个字符不符合浮点数语法规范 结果是 NaN

                          NaN: true false null undefined  'a100'

                          获取浮点数部分

                                    100         100

                                    100.123     100.123

                                    '100a'      100

                                    '2e3'       2000

 小用法window.prompt() 输入框输入的数据 获取结果是 字符串类型如果需要参与计算 要 转化为 数值类型Number( window.prompt() )     window.prompt() - 0      window.prompt() * 1      window.prompt() / 1获取的css样式属性值 获取的css样式属性值 往往是带有 px单位可以 通过 parseInt( '100px' ) ---- 100获取整数部分 去掉 px单位      

二、运算符

1.定义:

就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在 js 里面还有很多的运算方式

2.种类:

(1)字符串拼接运算符:  表达式 + 表达式

                        有一个表达式存储的数据是 字符串    执行字符串拼接操作

(2)算数运算符: +   -   *   /   %

           %   求模运算符:求两个数相除的余数 如果整除 余数是 0

(3)比较运算符:>   <   >=  <=  ==  === !=  !==

               比较运算符 执行结果 一定是 布尔类型

 ==     等于比较 / 宽松比较  两个表达式 数值相同 执行结果就是 true     数据类型可以不同 实际项目中不推荐使用

 ===  全等判断 /  严格比较 两个表达式 数据类型 数值 都必须相同 执行结果才是 true 数据类型和数值 都必须相同

 !=     不等判断      执行原理和 ==等于比较相同 执行结果 相反

 !==   不全等判断  执行原理和 ===全等比较相同 执行结果 相反

  相关解决方案