javaScript数据类型

javaScript 总共有两种数据类型:

  基本数据类型(或者原始数据类型)按值传递number  string  boolean   undefined   null  symbol

  复杂数据类型(或者引用数据类型)按引用传递object   

可以使用 typeof 操作符简单的检测给定变量的数据类型:

      检测数值(包括NaN,Infinity)返回 "number";

      检测字符串 返回 "string";

      检测布尔值 返回 "boolean";

      检测一个变量未定义,或者未赋值 ,返回 "undefined";

      检测一个对象或者null 返回 "object";

      检测一个函数 返回 "function";

      检测一个Symbol值 返回 "symbol" symbol 是ES6新增基本数据类型

 Number  转换为数值  三种方法:Number(),parseInt(),parseFloat()

                Number()方法,它会 “计算” 要转换的数值,并且会忽略前导0,但是可以转换16进制数;

                                        Number( '  ' ) //  0

                                        Number( ' 12a ' ) // NaN 

                                        Number( ' true ' ) // NaN

                                        Number( true ) // 1

               parseInt()parseFloat(),它们不会 “计算” ;

                          parseInt() 不识别小数点,但可以提供第二个参数:转换是使用的基数,就是要解析的值是多少进制;可以转换8/16进制;

                          parseFloat() 只识别第一个小数点,会忽略前导0,只解析十进制数;

                                       parseInt( ' ' ) 、parseFloat( ' ' ) // NaN   

                                       parseInt( ' 12a' )  // 12、parseFloat( ' 12.1a' ) // 12.1

                                       parseInt(true) 、parseFloat( true) // NaN     

String   转换为字符串  String(),会调用 toString() 方法(如果有的话),null、undefined没有toString方法,返回它们本身;

                          也可以使用加号操作符(该值可以进行加运算的话)与一个空字符串加一起:值 + ' ';

Boolean  转为布尔值  Boolean() ,这六个值转为false:false、0、' '、NaN、null、undefined; 其它都转为true;

Undefined、Null 两个特殊的类型,Number(null) // 0、 Number(undefined) // NaN

 

Object   对象的属性以及方法:

                         prototype  原型对象,指向另一个对象,本对象的属性继承自它的原型对象;

                                          原型的获取方法:标准方法 Object.getPrototypeOf(obj)    非标准 obj.__proto__ 

                         constructor  构造函数,它保存着用于创建当前对象的函数;

                                           构造函数的原型的constructor属性指向构造函数本身: Foo.prototype.constructor === Foo;

                         obj.hasOwnProperty(' 属性名 '),判断该属性是否为obj对象的自有属性;

                                            结合 in 操作符 可以判断该属性是自有属性还是共有属性;

                         A.prototype.isPrototypeOf(B),检测一个对象(A.prototype)是否在另外一个对象(B)的原型链上;

                                           也就是说B对象是否继承自A.prototype;

                         obj.propertyIsEnumerable(' 属性名 ')   检测对象obj的属性是否可以用 for-in 枚举;

                                            for-in 可以遍历自身以及继承的可枚举属性; Object.keys( ) 只遍历自身可枚举属性;

                         valueOf() 、toString()、toLocaleString()  返回对象的字符串表示; 

   

posted @ 2019-02-15 22:31  卒卒卒  阅读(103)  评论(0编辑  收藏  举报