Appearance
数据类型认知
基本数据类型 和 引用数据类型的区别
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
2
3
4
5
6
7
8
9
- 基本数据类型是按值操作的:基本数据类型的赋值的时候,是直接把值赋值给变量即可
- 引用数据类型是按照空间地址(引用地址)来操作的:var n =
- 先创建一个变量 n
- 浏览器首先会吧开辟一个新的存储控件(内存控件),目的是吧对象中需要存储的内容(键值对)分别的存储在这个空间中,为了方便后期找到这个空间,浏览器给空间设定一个地址(16 进制)
- 把空间的地址赋值给了变量
- 基本数据类型(值类型)
- 数字 number
- 字符串 string
- 布尔 boolean
- null
- undefined
- 引用数据类型
- 对象 object
- 普通对象
- 数组对象
- 正则对象
- 日期对象
- ...
- 函数 function
- 对象 object
- 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
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
2
3
4
5
6
function 数据类型
- funciotn fn (){}
javascript
function fn(){
}
1
2
3
2
3
ES6
- 中新增加的一个特殊的类型:Symbol,唯一的值
javascript
// [Symbol]
// 创建出来的是一个唯一的值
var a = Symbol('唯一');
var b = Symbol('唯二');
// a==b =>false
1
2
3
4
5
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
2
3
4
5