目录

Javascript-基础数据类型

Javascript 基础数据类型

2.1 两种数据类型概念

  • 基础类型
  • 原始类型(基础类型)数据保存在栈内存里
  • 包括:Number、String、Boolean、Undefined、Null、Symbol
  • 复杂类型
  • 复杂类型(引用类型)数据保存在堆内存里,通常内存占据空间较大,存放的是地址。
  • 包括:对象{},数组[]、函数(){} https://i-blog.csdnimg.cn/direct/9d3e542a189c47b682a6211bc6473cbf.png#pic_center

2.2 基础类型数据-Number

  • 声明定义 // 字面量声明 var num = 1; console.log(typeof num) // number // 数字对象方式声明 var num = new Number(2); console.log(num + 3) // 5
  • 数字方法
  • 整数判断 console.log(Number.isInteger(1.3)) // false
  • 指定返回的小数位数 console.log((12.345).toFixed(2)) // 12.35
  • NaN - 表示非数字值 var a = ‘123’; console.log(Number(a)); // 123 console.log(isNaN(a)); // false var b = ‘asdf’ console.log(Number(b)); // NaN console.log(isNaN(b)) // true 注意null""两个值会被判断为数字,所以使用前应该屏蔽 var a = ‘’; console.log(Number(a)); // 0 console.log(isNaN(a)); // false var b = null console.log(Number(b)); // 0 console.log(isNaN(b)) // false
  • 浮点精度
  • js语言在浮点数计算时会有精度误差问题 var a = 0.1 + 0.2 console.log(a) // 0.30000000000000004
  • 解决方式 var a = 0.1 + 0.2 console.log(a.toFixed(1)) // 0.3

2.3 基础类型数据 - String

  • 声明定义 // 字面量声明 var name = ‘小帅’ // 可以使用单引号或者双引号 // 字符串对象方式声明 var name = new String(‘小帅’)
  • (常用)字符串方法 // 连接运算符 var address = ‘csdn.net’ name = ‘CSDN’ console.log(name + ‘网址为’ + address) // CSDN网址为csdn.net // 获取长度 console.log(‘csdn.net’.length) // 8 // 大小写长度 console.log(‘csdn.net’.toUpperCase()) // CSDN.NET console.log(‘CSDN.NET’.toLowerCase()) // csdn.net // 移除空白 var str = ’ csdn.net ' console.log(str.length) // 14 console.log(str.trim().length) // 获取单字符 console.log(‘csdn.net’.charAt(3)) // n console.log(‘csdn,net’[3]) // n // 截取字符串 var n = ‘csdn.net’.slice(1, 5) // 左闭右开 console.log(n) // sdn. // 查找字符串 console.log(‘csdn.nets’.indexOf(’s’)) // 1 console.log(‘csdn.nets’.indexOf(’s’, 6)) // 8 从第六个字符开始搜索 // 替换字符串 var name = ‘CSDN教育机构’ var changeName = name.replace(‘机构’, ‘课堂’) console.log(changeName) // CSDN教育课堂 // 类型转换(将'2022-01-22’时间格式转换为'2022/01/22’) var time = ‘2022-01-22’ console.log(name.split(’-’)) // [‘2022’, ‘01’, ‘22’] var a = name.split(’-’) console.log(a.join(’/’)) // 2022/01/22

2.4 基础类型数据 - Boolean

  • 声明定义 // 字面量声明 var a = true
  • 隐式转换 几乎所有的类型都可以隐式转换为Boolean类型
    基础类型truefalse
    String非空字符串空字符串
    Number非0的数值0/NaN
    Array数组不参与比较时参与比较的空数组
    Object
    undefined
    null
    NaN
    // String
    console.log(Boolean(‘123’)) // true
    console.log(Boolean(’’)); // false
    // Number
    console.log(Boolean(1)) // true
    console.log(Boolean(NaN)); // false
    // Array
    var list1 = [];
    var list2 = [1, 2]
    console.log(Boolean(list1)) // true
    console.log(Boolean(list2)) // true
    console.log(list2 == true) // false
    当其他类型与Boolean类型对比时,会将其他类型先转换为数值类型再对比
    console.log(Number(‘123’)); // 123
    console.log(‘123’ == true); // false
    console.log(‘1’ == true); // true
    console.log(Number([])); // 0
    console.log([] == true); // false
  • 显式转换 var a = ’’ console.log(!!a) // false a = 0 console.log(!!a) // false a = null console.log(!!a) // false a = 1 console.log(!!a) // true

2.5 基础数据类型 - Undefined、Null、Symbol

  • Undefined/Null
  • Null和Undefined基本是同义的 undefined == null // true null 是一个表示”无“的对象,转为数值时为0;undefined是一个表示”无“的原始值,转为数值时为NaN。 console.log(Number(null)) // 0 console.log(Number(undefined)) //NaN console.log(5 + undefined) //NaN
  • Undefined // 变量被声明了,但没有赋值时,就等于undefined var i console.log(i) // undefined // 对象没有赋值的属性,该属性的值为undefined var o = new Obeject() console.log(o.p) // undefined // 函数没有返回值时,默认返回undefined function test(){} console.log(test()) // undefined
  • Null null // 表示"没有对象", 即此处不该有值 用法: (1) 作为函数的参数,表示该函数的参数不是对象 (2) 作为对象原型链的终点 Object.getPrototypeOf(Object.prototype) // null
  • Symbol(es6的语法)
  • Symbol(‘name’)生成唯一属性 // 在一个对象中需要增加一个相同的属性名 var xs = {aa : ‘1’} var aa = Symbol(‘aa’) xs[aa] = 2 console.log(xs) https://i-blog.csdnimg.cn/direct/96216a0571284f29a163855de22c53f3.png#pic_center