关于JavaScript的数据类型一点点认识

在JavaScript中不需要提前声明变量的类型,在程序运行过程中,变量类型会自动定义。

其中,包括了6中原始数据类型与3种引用数据类型,原始数据类型包括:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol;引用数据类型包括:对象(Object)、数组(Array)、函数(Function)。


原始数据类型

String:JavaScript的字符串类型用于表示文本数据。在字符串中的每个元素占据了字符串的位置,与java中的字符串定义相同。字符串被引号包围,可使用单引号或双引号。

(1)JavaScript中的字符串一经创建,是不可修改的;

(2)使用String.substr()获取字符串的子串;

(3)通过“+”或者String.concat()连接两个字符串;

Number:JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(263-1) 到 263-1)。能够表示整数、浮点数,包括一些带符号的值如:+Infinity,-Infinity和NaN(非数值,Not-a-Number);极大或极小的数字可以通过科学(指数)计数法来书写如var y=123e5;(相当于12300000)

Boolean:布尔表示一个逻辑实体值,包括true和false

null:Null 类型只有一个值,即null,值null特指对象的值未设置,可以通过将变量的值设置为 null 来清空变量

undefined:一个没有被赋值的变量会有个默认值undefined,是全局对象的一个属性,全局作用域的一个变量;

Symbol:Symbol值通过Symbol函数生成,表示独一无二的值,在Symbol函数前不可以使用new命令;

(1)每一个Symbol值都是不相等的,这意味着Symbol值可以作为标识符,用于对象的属性名,就能保证不会出现同名的属性;

(2)有一个Object.getOwnPropertySymbols方法,可以获取指定对象的所有 Symbol 属性名;

(3)Symbol.for()帮助重新使用同一个Symbol值,它接受一个字符串作为参数,然后搜索有没有以该参数作为名称的Symbol值。如果有,就返回这个Symbol值,否则就新建并返回一个以该字符串为名称的Symbol值;Symbol.keyFor()返回一个已登记的 Symbol 类型值的key;


引用数据类型

Object:Object构造函数为给定值创建一个对象包装器。如果给定值是null或undefined,将会创建并返回一个空对象,否则,将返回一个与给定值对应类型的对象。当以非构造函数形式被调用时,Object等同于new Object();Object包括了Function、Array、date等。

常见的对象常量如下所示:

var student= {

      name:"Reet",

      lastName:"Chen" ,

      whatsName:function(){

              alert(this.name+" "+this.lastName); 

      },

}

实际上在JS中的对象就是一个以键值对形式存储属性的一个集合,每一个属性有一个特定的名称,并与名称相对应的值。

Object构造函数常用方法:

Object.assign() :通过复制一个或多个对象来创建一个新的对象。

Object.create() :  使用指定的原型对象和属性创建一个新对象。

Object.defineProperty() : 给对象添加一个属性并指定该属性的配置

Object.freeze() : 冻结对象,其他代码不能删除或更改任何属性


使用 typeof 操作符判断对象类型

var a = 'dog';

<script type="text/javascript">

       document.write(typeof(a));

</script>

上述返回string.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容