Blog
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)

HiuZing

🍑
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)
  • 前端面试题

  • JavaScript

    • JavaScript语法

      • JavaScript-数据类型
        • JavaScript-数据类型
          • 数据类型分类
          • 基本数据类型和引用数据类型的区别
          • 堆栈内存
          • 数据类型-Number
          • 数据类型-String
          • 数据类型-Boolean
          • 数据类型-Null和Undefined
          • 数据类型-对象
          • 数据类型-数组
      • JavaScript-ES6编程风格
      • JavaScript-异步编程
      • JavaScript-Promise
      • JavaScript-Proxy
      • JavaScript-Reflect
      • JavaScript-Iterator
      • JavaScript-Module
      • JavaScript-拷贝
      • JavaScript-this
      • JavaScript-垃圾回收机制
      • JavaScript-闭包
      • let和const
      • JavaScript-参数默认值
      • JavaScript-rest
      • JavaScript-扩展运算符
      • JavaScript-Symbol
      • JavaScript-生成器
      • JavaScript-class类
      • JavaScript-数值扩展
      • JavaScript-高阶函数
      • JavaScript-箭头函数
    • JavaScipt对象

    • JavaScript实例

    • JavaScript浏览器BOM

    • JavaScript DOM

  • Vue2

  • port

  • CSS

  • Node.js

  • JavaScript优化

  • uniapp

  • Mini Program

  • TypeScript

  • 面向对象编程

  • UI组件

  • Plugin

  • Vue3

  • 性能优化

  • Axios

  • 状态管理

  • React

  • Mock

  • Icon

  • Template

  • 构建工具

  • 项目规范配置

  • Taro

  • SVG

  • React Native

  • 前端
  • JavaScript
  • JavaScript语法
HiuZing
2022-10-08
目录

JavaScript-数据类型

# JavaScript-数据类型

# 数据类型分类

基本数据类型

  • 数值类型(Number)

  • 字符串类型(String)

  • 布尔类型(Boolean)

  • null

  • undefined

引用数据类型

  • 对象(object)
    • 对象(object)
    • 数组(Array)
    • 时间(Date)
    • 正则(RegExp)
    • 数学(Math)
  • 函数(function)

# 基本数据类型和引用数据类型的区别

  • 基本数据类型存储在栈内存中,引用数据类型存储在堆内存中
  • 数据存储时,基本数据类型在变量中存的是值,引用数据类型在变量中存储的是空间地址
  • 基本数据操作的是值,引用数据类型操作的是空间地址

# 堆栈内存

  • 堆内存和栈内存是浏览器形成的两个虚拟内存
  • 栈内存主要用来存储基本数据的值;供js代码执行;栈内存是一种简单存储,存储的数据都有范围上线,一旦超过上限,就会栈溢出
  • 堆内存主要用来存储引用数据类型

# 数据类型-Number

  • JS只有一种数值类型,包含小数和整数
  • NaN也是数值类型,代表不是一个数字
  • isNaN():会先把要校验的值强制转换成number类型的;然后再进行判断;如果是一个有效数字,返回false,如果不是一个有效数字,返回true
  • Number():将其他数据类型的值强制转换成number类型;要把其他数据类型转换成number时,首先会调用toString(),转换成字符串
  • ParseInt()::用于从一个字符串中提取数字的方法,对字符串从左到右识别,直到遇到一个非有效数字停止,返回匹配的数字,如果第一个字符是非有效数字,返回NaN
  • ParseFloat(): 和parseInt用法一样,区别是ParseFloat多识别一位小数点
  • toFixed():保留小数位数的一个方法,返回的是一个字符串

# 数据类型-String

  • 在js中用引号包含的文本内容称之为字符串,可以是单引号也可以是双引号,(注意引号是成对出现的)
  • 索引: 在字符串中,每个字符都有一个与之对应的索引,这个索引是一个数字,从字符串最左侧开始,第一个字符的索引为0,依次递增;可以通过索引找到字符串中的某个字符,(例:str[0]);
  • length:字符串有一个length属性,属性值代表的是当前字符串中字符的个数
  • +:拼接符,用来拼接字符串

# 数据类型-Boolean

  • 布尔类型常用在条件判断中,他只有两个值true和false
  • Boolean(): 把其他类型的值转换成布尔类型,返回值只可能是true或false
  • 在js中只有0、空字符串、null、undefined、NaN这五个值转成布尔值时是false,其余都是true
  • ! : 取反,该符号首先会把后面的值转换成布尔值,然后取反;连用两次取反,会隐式的将其他数据类型转换成布尔型;(例:!!”aa” ===true)

# 数据类型-Null和Undefined

  • Null类型的值只有一个,就是null
  • Undefined类型的值也只有一个,就是undefined
  • null和undefined都表示没有;null表示现在没有以后可能有,用来占位;undefined表示现在没有定义,现在没有以后也没有
  • null表示空对象指针
  • null的几种情况
    • 通过id获取元素如果获取不到,返回的值默认为null
    • 可以给变量赋值为null,来清空变量,可以用来释放堆内存
    • 正则捕获捕获不到内容时,返回值为null
  • undefined的集中情况
    • 如果变量只声明为定义,默认存储的值为undefined
    • 获取对象的某个属性是,如果属性不存在,获取的值是undefined
    • 如果函数的形参没有对应的实参,那么形参默认存储的值是undefined
    • 如果函数没有return返回值,那么默认的返回值是undefined

# 数据类型-对象

  • 对象是由键值对组成,每组键值对由逗号隔开,键值对由键(属性名)和值(属性值)组成;键和值之间用冒号隔开,前面是键后面是值;
  • 对象的定义
    • 首先会开辟一块堆内存空间
    • 把对象的键值对存储都该空间中
    • 把该空间的地址赋值给变量
    • 变量中实际存储的时一个十六进制的空间地址,这个地址是浏览器分配的
  • 对象没有length属性
  • 获取对象下的某个属性的值:(对象名.属性名)(对象名[属性名])
  • 新增键值对:(对象名.新属性名=属性值)(对象名[新属性名]=属性值)
  • 修改键值对:(对象名.属性名=属性值)(对象名[“属性名”]=属性值)
  • 删除键值对:(delete 对象名.属性名)(delete 对象名[“属性名”])

# 数据类型-数组

  • 数组由数组成员项组成,成员项之间由逗号隔开;
  • length: 数组由length属性,属性值代表数组成员项的个数
  • 索引:索引从0开始,依次递增,与数组的成员项一一对应
  • 数组的定义
    • 首先在堆内存中开辟一块空间
    • 将数组的成员项通过,索引值一一存储
    • 把空间地址赋值给变量
    • 变量中存储的是一个十六进制的空间地址
上次更新: 2024/08/14, 04:14:33
面试记录
JavaScript-ES6编程风格

← 面试记录 JavaScript-ES6编程风格→

最近更新
01
React Native 使用SVG
08-13
02
Docker基础命令
08-04
03
算数逻辑单元
07-30
更多文章>
Theme by Vdoing | Copyright © 2021-2024 WeiXiaojing | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式