数据和类型转换

数据类型

数字类型

数字操作

比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。

  • +:求和
  • -:求差
  • *:求积
  • /:求商
  • %:取模(取余数)
    • 开发中经常作为某个数字是否被整除

NaN

NaN表示 not a number,中文解释是“非数字的特殊值”,它的数据类型是 number。
NaN 是粘性的。任何对 NaN 的操作都会返回 NaN

    console.log('你好' - NaN)
    console.log(NaN - '你好')

在这里插入图片描述

JavaScript算术运算符的执行顺序

JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
总结一句话,先乘除后加减,有括号先算括号里面的。

字符串类型(string)

  • 通过单引号( ‘’) 、双引号( “”)或反引号( ` ) 包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
  • 注意事项:
    • 无论单引号或是双引号必须成对使用
    • 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)
    • 必要时可以使用转义符 \,输出单引号或双引号

字符串拼接

场景: + 运算符 可以实现字符串的拼接。
口诀:数字相加,字符相连

模板字符串

模板字符串

  • 使用场景
    • 拼接字符串和变量(在没有它之前,要拼接变量比较麻烦)
  • 语法
    • `` (反引号) 在英文输入模式下按键盘的tab键上方那个键(1左边那个键)内容拼接变量时,用 ${ } 包住变量
<body>
  <script>
    let a = '李白', b = 1
    document.write(`你好,${a}`)
    document.write('<br></br>')
    document.write(`你好,${a + b}`)
  </script>
</body>

在这里插入图片描述

未定义类型(undefined)

  • 什么情况出现未定义类型?
    • 只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
  • 工作中的使用场景:
    • 开发中经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来

布尔类型(boolean)

它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)

null(空类型)

  • JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
    *null 和 undefined 区别:
    * undefined 表示没有赋值
    * null 表示赋值了,但是内容为空
    • null 开发中的使用场景:
      官方解释:把 null 作为尚未创建的对象
      大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null

类型转换

显式转换

依靠系统内部的隐式转换是不严谨的,因为隐式转换规律并不清晰,多是靠经验总结的规律。
为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显式转换。

  • 转换为Number(数据)
    • 如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字
      • NaN也是number类型的数据,代表非数字
    let str = '123'
    console.log(Number(str))
    console.log(Number('吉良吉影'))

在这里插入图片描述

* parseInt(数据) 只保留整数
* parseFloat(数据) 可以保留小数
    console.log(parseInt('12ab'))
    console.log(parseInt('ab12'))
    console.log(parseInt('12px'))
    console.log(parseInt('12.123px'))
    console.log(parseFloat('12.123ab'))
    console.log(parseFloat('ab12.123'))

在这里插入图片描述

  • 转换为string型
    • String(数据)
    • 变量.toString(进制)
      *在 JavaScript 中,你可以使用 .toString(进制) 方法将一个变量转换为指定进制的字符串表示形式。这个方法接受一个参数,即要转换成的进制数,通常是 2、8、10 或 16。
      例如,如果你有一个整数变量 num,你可以使用 num.toString(2) 将其转换为二进制字符串,num.toString(8) 将其转换为八进制字符串,num.toString(16) 将其转换为十六进制字符串。
      这个方法通常用于数值的进制转换,例如将数字以不同进制的形式进行显示或处理。
  <script>
    let sum = 55
    console.log(typeof String(sum))
    console.log(sum.toString(2))
  </script>

在这里插入图片描述

隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换

  • 规则:
    • +号两边只要有一个是字符串,都会把另外一个转成字符串
    • 但是单用的时候就是作为转换符,可以把字符串转换为数字
  <script>
    console.log(typeof +"1")
    console.log(typeof -"1")
  </script>

在这里插入图片描述

  • 除了+以外的算术运算符 比如-*/等都会把数据转成数字类型
   console.log(2 - "1")
    console.log(2 + "1")
    console.log("1" - 2)

在这里插入图片描述

  • 缺点:
    • 转换类型不明确,靠经验才能总结
  • 小技巧:
    • +号作为正号解析可以转换成数字型
console.log(+"1")//1
* 任何数据和字符串相加结果都是字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值