JavaScript的数据类型

1、JavaScript有6种数据类型(这里不说ES6新增的Symbol类型)

  • 基本数据类型:String,Boolean,Number,Undefined,Null        typeof null //object 
  • 引用数据类型:Object(Array,Date,RegExp,Function)

 

2、基本类型和引用类型的区别:

  • 保存位置:基本类型保存在栈内存中,引用类型保存在堆内存中
  • 检测类型:基本类型用typeof检测,引用类型用instanceof检测
  • 修改变量:基本类型不可修改,引用类型可以修改
  • 保存类型:保存基本类型的变量保存的是值本身,保存引用类型的变量保存的并不是对象本身,而是一个指向该对象的引用地址

 

3、如何判断一个变量是Array类型?

  • instanceof                                   
  • Array.isArray()                                        
  • Object.prototype.toString.call()                不仅可以判断数组,还可以判断数值,字符串,正则等其他类型
1 [] instanceof Array                               //true
2 Array.isArray([])                                 //true
3 toString.call([])                                 //[object Array]

 

4、如何判断一个变量是Number类型?

  • typeof
  • isNaN
1 var a = 12;
2 typeof a;                     //number
3 isNaN(a)                      //false 

注意:

1、isNaN是函数类型                    typeof isNaN  //function 

2、isNaN()是布尔类型                 typeof isNaN()  //boolean 

 

5、==和===的区别?

  • ==会自动转换类型
  • ===不会,===会先判断左右两边的数据类型,如果一致,再去比较两边的值,如果不一致,则返回false
1 undefined == undefined          //true
2 undefined === undefined        //true
3 [] == []            //false
4 [] === []           //false
5 {} == {}            //false
6 {} ==== {}          //false

 

 

6、null和undefined的区别?

1 null == undefined        //true
2 null === undefined      //false

 

区别:

  • null表示一个空对象指针,可以理解成空对象。可以给一个变量赋值为null,用来保存对象
  • undefined是变量声明还没初始化的变量的值,可以理解成空变量。没必要给一个变量赋值成undefined,默认就是undefined

 

7、js的字符串类型有哪些方法?正则表达式的函数怎么使用?

8、typeof和instanceof的区别?instanceof的原理?

posted @ 2019-07-23 15:54  七朵藤上一支花  阅读(134)  评论(0编辑  收藏  举报