Skip to content
On this page

数据类型认知

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

JS 是运行在浏览器中的(内核引擎),浏览器会为 JS 提供赖以生存的环境(提供给 js 代码执行的环境)=> 全局作用域 window(global)

javascript
var a = 12;
var b = a; // 把A变量存储的值赋值给B
b = 13;
console.log(a);

var n ={name:'wjh'};
var m = n;
m.name = 'wjw'
console.log(n.name)
1
2
3
4
5
6
7
8
9
  • 基本数据类型是按值操作的:基本数据类型的赋值的时候,是直接把值赋值给变量即可
  • 引用数据类型是按照空间地址(引用地址)来操作的:var n =
    • 先创建一个变量 n
    • 浏览器首先会吧开辟一个新的存储控件(内存控件),目的是吧对象中需要存储的内容(键值对)分别的存储在这个空间中,为了方便后期找到这个空间,浏览器给空间设定一个地址(16 进制)
    • 把空间的地址赋值给了变量

image.png

  • 基本数据类型(值类型)
    • 数字 number
    • 字符串 string
    • 布尔 boolean
    • null
    • undefined
  • 引用数据类型
    • 对象 object
      • 普通对象
      • 数组对象
      • 正则对象
      • 日期对象
      • ...
    • 函数 function
  • ES6 中新增加的一个特殊的类型:Symbol,唯一的值

基本数据类型(值类型)

  • Number  数字
  • String  字符串
    • 单引号包裹起来的都是字符串(单双号没有区别)
  • Boolean  布尔
    • true false => 布尔值只有两个值
  • null 空对象指针
  • undefined  未定义
javascript
// [基本数据类型]
var n = 13; // => 0 -13 13.2 数字类型中有一个特殊的值NaN(not a number代表不是一个有效的数字,但是属于number类型的)

var s = ''; // => "" '13' "{}" JS中所有用单引号或者双引号包裹起来的都是字符串,里面的内容是当前字符串中的字符(一个字符串由零到多个字符组成)

var b = true;//=>布尔类型只有两个值 true真 false假
1
2
3
4
5
6

引用数据类型

  • {}  普通对象
  • []  数组
  • /^$/ 正则
  • ...
javascript
// [引用数据类型]
var o = {name:'张三',age:9};// =>普通的对象:由大括号包裹起来,里面包含多组属性名和属性值(包含多组键值对) {}空对象

var ary = [12,23,34,45]; // =>中括号包裹起来,包含零到多项内容,这种是数组对象  []空数组

var reg = /-?(\d|([1-9]\d+))(\.\d+)?/g; // =>由元字符组成一个完整的正则  //不是空正则是单行注释
1
2
3
4
5
6

function 数据类型

  • funciotn fn (){}
javascript
function fn(){

}
1
2
3

ES6

  • 中新增加的一个特殊的类型:Symbol,唯一的值
javascript
// [Symbol]
// 创建出来的是一个唯一的值
var a = Symbol('唯一');
var b = Symbol('唯二');
// a==b =>false
1
2
3
4
5

数据类型检查

  • typeof
    • 用来检测数据类型的运算符
  • instanceod
    • 检测某个实例是否属于这个类
  • constructor
    • 获取当前实例的构造器
  • Object prototype.toSting.call()
    • 获取当前实例的所属类信息

typeof

操作符 typeof 是用来检测给定变量的数据类型的操作符。对一个值使用 typeof 操作符可能返回下列某个字符串:

javascript
"undefined"
"boolean"
"string"
"number"
"object" // 如果这个值是对象或者null "function"
1
2
3
4
5
沪ICP备20006251号-1