首页 javascript基本类型
文章
取消

javascript基本类型

JavaScript数据类型

基本类型

  • NumberStringBooleanNullUndefindBigIntSymbol

引用类型

  • ObjectArrayFunctionDateRegExpMapSet等。

计算机内存可以简单的分为两大部分:栈(Stack)堆(Heap)

基本类型:基本类型变量的值存储在

引用类型:对于引用类型的变量,其引用类型(引用地址或指针)存储在中,而实际的对象的值存储在中。

判断数据类型方式

  • typeof typeof是一个JavaScript的操作符,用于确定变量或值的数据类型
1
2
3
4
5
6
7
8
9
typeof 123;            // "number"
typeof "hello";       // "string"
typeof true;          // "boolean"
typeof undefined;     // "undefined"
typeof null;          // "object"  (注意这是一个历史上的错误,实际上 null 的类型不是 "object")
typeof {};            // "object"
typeof [];            // "object"
typeof function(){};  // "function"

  • instanceof instanceof操作符用于判断一个对象是否是某个构造函数的实例
1
2
3
4
[] instanceof Array;          // true
{} instanceof Object;         // true
new Date() instanceof Date;   // true

instanceoftypeof的区别

  • instanceof 可以准确的判断准确的判断复杂的引用类型,不能正确判断基础数据类型
  • typeof 会返回一个变量的基本类型,instanceof返回的是一个布尔型
  • typeof 也有个弊端,除了基本类型可以准确判断(null 除外,早期就出现的一个bug识别为Object),引用类型数据中除了 function 以外,其他的也无法判断

  • Object.prototype.toString.call() 使用 Object.prototype.toString.call() 方法是一个更通用和准确的方法,可以用来判断任何值的数据类型。
1
2
3
4
5
6
7
8
9
Object.prototype.toString.call(123);          // "[object Number]"
Object.prototype.toString.call("hello");     // "[object String]"
Object.prototype.toString.call(true);        // "[object Boolean]"
Object.prototype.toString.call(undefined);   // "[object Undefined]"
Object.prototype.toString.call(null);        // "[object Null]"
Object.prototype.toString.call({});          // "[object Object]"
Object.prototype.toString.call([]);          // "[object Array]"
Object.prototype.toString.call(function(){}); // "[object Function]"

hasOwnProperty

  • hasOwnProperty()方法用来判断一个对象思否含有指定的自身属性(不是继承来的),返回一个布尔型值。
1
2
3
4
5
6
7
8
9
10
function Fun() {}
Fun.prototype.address = '北京'
var obj = new Fun()
obj.name = 'John'
obj.age = 20
// var obj = { name: "John", age: 20 };

console.log(obj.hasOwnProperty("name")); // true
console.log(obj.hasOwnProperty("age")); // true
console.log(obj.hasOwnProperty("address")); // false 只判断实例自身的属性,继承来的属性返回 false

数据结构

前端开发中常见的数据结构

  • 栈 Stack : 栈 Stack 是一种“先进后出”的数据结构。
  • 队列队 Queue : 队列 Queue 是一种“先进先出”的数据结构。
  • 链表链 Linked list : 链表不是连续的数据结构,而是由一系列的节点组成,节点之间通过指针连接。
  • 树 Tree : 树,是一种有序的层级结构。每个节点下面可以有若干个子节点。例如常见的 DOM 树。
  • 二叉树 Binary Tree : 二叉树,首先它是一棵树,其次它的每个节点,最多有两个子节点,分别为 left 和 right
转摘分享请注明出处

webpack基础知识

react基础知识