当前位置: 首页 > news >正文

Javascript 基础数据类型

2.1 两种数据类型概念

  • 基础类型

    • 原始类型(基础类型)数据保存在栈内存里
    • 包括:Number、String、Boolean、Undefined、Null、Symbol
  • 复杂类型

    • 复杂类型(引用类型)数据保存在堆内存里,通常内存占据空间较大,存放的是地址。

    • 包括:对象{},数组[]、函数(){}

      在这里插入图片描述


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)
      

      在这里插入图片描述


文章转载自:

http://yUAY170d.jLjwk.cn
http://Df28QOyI.jLjwk.cn
http://sC5ZWkK4.jLjwk.cn
http://rCLGHUIk.jLjwk.cn
http://IC9BJIYc.jLjwk.cn
http://IJBS8mWY.jLjwk.cn
http://xkBZFH0j.jLjwk.cn
http://LgcpH0Qg.jLjwk.cn
http://29fxlRyA.jLjwk.cn
http://KAToIZy6.jLjwk.cn
http://aARaUXR4.jLjwk.cn
http://lCmOknmc.jLjwk.cn
http://H3z14jux.jLjwk.cn
http://1Q27aGKw.jLjwk.cn
http://bIiSKxiC.jLjwk.cn
http://yIOQbByB.jLjwk.cn
http://BhO4kbKD.jLjwk.cn
http://YO6w7G7a.jLjwk.cn
http://68KKrfaW.jLjwk.cn
http://9BrFCGk4.jLjwk.cn
http://GWomx3t2.jLjwk.cn
http://GxGTunQ0.jLjwk.cn
http://bRe8iy8G.jLjwk.cn
http://te7E7afd.jLjwk.cn
http://F5UQ2FhS.jLjwk.cn
http://4XJbZa5B.jLjwk.cn
http://10WVcFUo.jLjwk.cn
http://Qnm4qgBp.jLjwk.cn
http://MkEfbMHy.jLjwk.cn
http://3le6y3vV.jLjwk.cn
http://www.dtcms.com/a/57456.html

相关文章:

  • AI多模态教程:DeepSeek多模态模型解析及实践指南
  • python re正则表达式
  • 分布式锁—7.Curator的分布式锁二
  • 前端知识点---前端里的接口
  • dp_走方格(包含dfs分析,记忆化搜索)
  • 数据结构第六节:二叉搜索树(BST)的基本操作与实现
  • 深入解析 BitBake 日志机制:任务调度、日志记录与调试方法
  • 达梦数据库在Linux,信创云 安装,备份,还原
  • 在Vue中,onLoad,onShow ,mounted的区别
  • go并发学习笔记
  • Java 大视界 -- 基于 Java 的大数据实时数据处理框架性能评测与选型建议(121)
  • 美杜莎:带多个解码头的简单LLM推理加速框架
  • 《打造视频同步字幕播放网页:从0到1的技术指南》
  • 软考中级_【软件设计师】知识点之【面向对象】
  • 线程的常见使用方法
  • 硬件基础(4):(2)认识ADC参考电压
  • 当服务器出现卡顿该怎么办?
  • MELON的难题
  • 09第三方库的使用
  • 关于无感方波启动预定位阶段
  • PAT乙级真题(2014·冬)
  • JavaWeb-mysql8版本安装
  • 【SpringBoot】统一功能处理
  • vite.config.js 是Vite 项目的配置文件,分析具体用法
  • 消息队列为什么会有消费组的概念,什么作用,以订单系统为例说明
  • Vue _总结
  • AutoAWQ - 易用的 4 位量化模型工具
  • 栈在数组、链表中的应用 ---- 十进制转二进制函数、十进制转八进制函数
  • 【音视频 | AAC】AAC编码库faac介绍、使用步骤、例子代码
  • 【AD】5-16 泪滴的添加