JS-基本数据类型

文章目录

  • 数值类型Number
  • 字符串类型String
  • 布尔类型Boolean
  • Undefined类型
  • Null类型
  • typeof运算符
  • 数据类型转换
    • 1. 其他类型转数值类型
    • 2. 其他类型转字符串类型
    • 3. 其他类型转布尔类型

数值类型Number

  • 数值类型的取值:在js中该类型的表现形式
    • 整型数字:100
    • 小数:100.001
    • 科学计数法:5e3 ==> 5乘以10的三次方
    • Infinity:表示无穷
      • +Infinity 正无穷
      • -Infinity 负无穷
    • NaN:表示不是合法数字的数值类型(not a number)
      • NaN与任意数据进行运算结果都是NaN
    • 其他进制表示法
      • 二进制数字:0b开头的是二进制数
        • 二进制:0 1
        • 比如:0b11 ==> 3
      • 八进制数字:0o0开头的是八进制数
        • 八进制:0 1 2 3 4 5 6 7
        • 比如:0o12 ==> 10
      • 十六进制数字:0x开头的是十六进制数
        • 十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
        • 比如:0x11 ==> 17
      • 注意:浏览器只能输出十进制数值,其他进制数值会被转化为十进制数值后输出

字符串类型String

  • 在js中所有使用引号包裹的都是字符串类型数据
    • 单引号包裹的内容是字符串 ==> ‘qwert’
    • 双引号包裹的内容是字符串 ==> “qwert”
    • 反引号包裹的内容是字符串 ==> `qwert`
      • 反引号包裹的字符串也叫模板字符串
      • 模板字符串的特点:
        1. 可以换行书写
        2. 可以识别解析变量
          • 变量必须书写在模板字符串的${}
            • 比如:qwe${变量}rty
            • 在模板字符串的${}中可以书写一些简单的表达式
  • 字符串中的特殊内容
    • \在字符串中具有转义的含义,是字符串中的转义符,会将\后面的内容进行转义

布尔类型Boolean

  • 取值只有两个
    • true 在计算机中按1存储,表示
    • false 在计算机中按0存储,表示

Undefined类型

  • 也叫空类型
  • 取值只有一个就是undefined
  • 当声明了一个变量但是未赋值,此时变量值为undefined

Null类型

  • 也叫空类型
  • 取值只有一个就是null
  • 只有给变量赋值null,值才为null

typeof运算符

  • 语法1:typeof 数据
  • 语法2:typeof(数据)
  • 作用:检测数据的类型
  • 返回值:检测的结果,以字符串的形式返回检测数据的类型
    • 检测数值,返回'number'
    • 检测字符串,返回'string'
    • 检测布尔,返回'boolean'
    • 检测undefined,返回'undefined'
    • 检测null,返回'object'
// typeof 数据 与 typeof(数据) 的区别

var r1 = typeof 10 + 10;
// 由于运算符存在优先级问题,会先执行 typeof 10 ==> 'number'
// 然后再执行 'number' + 10 ==> 'number10'

var r2 = typeof(10 + 10);
// 由于运算符存在优先级问题,会先执行 (10 + 10) ==> 20
// 然后再执行 typeof 20 ==> 'number'

console.log(r1); // 'number10'
console.log(r2); // 'number'
// typeof连用的返回值一定是'string'

var r = typeof typeof 100;
// typeof 100 ==> 'number'
// typeof 'number' ==> 'string'

console.log(r); // 'string'
// typeof检测没有声明的变量不会报错而是返回'undefined'

console.log(typeof n); // 'undefined'
console.log(n); // 报错:n is not defined

数据类型转换

1. 其他类型转数值类型

  1. Number()
    • 语法:Number(数据)
    • 作用:将传入的数据转换为数值类型后返回
      • 转换过程:
        • 将传入的数据当作整体看待
        • 如果整体是合法数字则转换为对应的数值
        • 如果整体不是合法数字则转换为NaN
    • 返回值:转换为数值类型后的数据
    • 注意:
      • 传入布尔值true返回数值1
      • 传入布尔值false返回数值0
      • 传入null返回数值0
      • 传入undefined返回数值NaN
console.log(Number('12')); // 12
console.log(Number('12.1')); // 12.1
console.log(Number('.12')); // 0.12
console.log(Number('12a')); // NaN
console.log(Number('12.1.1')); // NaN

// 特殊的数据
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
  1. parseInt()
    • 语法:parseInt(数据)
    • 作用:将传入的数据转换为数值类型后返回
      • 常用于对小数取整
      • 转换过程:
        • 将传入的数据一位一位的看待,并逐位转换
        • 如果第一位是不合法数字,则转换结束并返回NaN
        • 如果第一位是合法数字,则转换继续并保留该数字
          • 继续转换下一位,如果是合法数字则转换继续并保留该数字
          • 直到某一位转换的是不合法数字则转换结束,并将之前转换的数值返回
      • 注意:转换中无法识别小数点
    • 返回值:转换为数值类型后的数据
console.log(parseInt('a1234')); // NaN
console.log(parseInt('12a34')); // 12
console.log(parseInt('12.666')); // 12
console.log(parseInt(10.111)); // 10

// 特殊的数据
console.log(parseInt(true)); // NaN
console.log(parseInt(false)); // NaN
console.log(parseInt(null)); // NaN
console.log(parseInt(undefined)); // NaN
  1. parseFloat()
    • 语法:parseFloat(数据)
    • 作用:将传入的数据转换为数值类型后返回
      • 转换过程:
        • parseInt的转换过程一模一样,区别是parseFloat可以识别一位小数点
    • 返回值:转换为数值类型后的数据
console.log(parseFloat('a1234')); // NaN
console.log(parseFloat('12a34')); // 12
console.log(parseFloat('12.34')); // 12.34
console.log(parseFloat('192.168.1.1')); // 192.168 

// 特殊的数据
console.log(parseFloat(true)); // NaN
console.log(parseFloat(false)); // NaN
console.log(parseFloat(null)); // NaN
console.log(parseFloat(undefined)); // NaN

注意:以上方法不会改变原数据

2. 其他类型转字符串类型

  1. String()
    • 语法:String(数据)
    • 作用:将传入的数据转换为字符串后返回
    • 返回值:转换后的字符串
var n = 100;
console.log(String(n)); // '100'
console.log(typeof String(n)); // 'string'

// 特殊的数据
console.log(String(true)); // 'true'
console.log(String(false)); // 'false'
console.log(String(null)); // 'null'
console.log(String(undefined)); // 'undefined'
console.log(String(NaN)); // 'NaN'
  1. toString
    • 语法:数据.toString()
    • 作用:将数据转换为字符串后返回
    • 返回值:转换后的字符串
    • 注意:undefinednull数据不能使用此方法,会报错
      • 因为undefinednull身上没有任何属性与方法
var n = 100;
console.log(n.toString()); // '100'
console.log(typeof String(n)); // 'string'

// 此处的第一个点会被识别为小数点,在js中的数字中的点默认为小数点
console.log(100.toString()); // 报错
// 第一个点识别为小数点,第二个点是语法的点
console.log(100..toString()); // '100'

// 报错:Cannot read properties of undefined (reading 'toString')
console.log(undefined.toString());
// 报错:Cannot read properties of null (reading 'toString')
console.log(null.toString());

// 特殊的数据
console.log(true.toString()); // 'true'
console.log(false.toString()); // 'false'
console.log(NaN.toString()); // 'NaN'

注意:以上方法不会改变原数据

3. 其他类型转布尔类型

  1. Boolean()
    • 语法:Boolean(数据)
    • 作用:将传入的数据转换为布尔值后返回
    • 返回值:布尔值
    • 注意:在js中此方法只有传入以下6个数据时结果才为false,其余的都是true
      1. 数值0
      2. 数值NaN
      3. 空字符串''
      4. undefined
      5. null
      6. 布尔值false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean('')); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
console.log(Boolean(false)); // false
// 除了以上的数据转换结果为false其他任何数据转换结果都为true

注意:以上方法不会改变原数据

你可能感兴趣的:(JavaScript,javascript,前端)