javascript有哪几种数据类型


本文摘自PHP中文网,作者青灯夜游,侵删。

javascript有9种数据类型,分别为:字符串(String)、数字(Number)、布尔(Boolean)、Null、Undefined、Symbol、对象(Object)、数组(Array)、函数(Function)。

本教程操作环境:windows7系统、ECMAScript 5版、Dell G3电脑。

JavaScript数据类型:

JavaScript语言的每一个值,都属于某一种数据类型。JavaScript的数据类型,共有9种:

  • 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。

  • 引用数据类型:对象(Object)、数组(Array)、函数(Function)。

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

1、Undefined:Undefined类型只有一个值,即特殊值undefined。在使用var声明变量,但未对其加以初始化时,这个变量值就是undefined。

2、Null:Null类型是第二个只有一个值的数据类型。其特殊值就是Null。从逻辑角度上看,null是一个空的对象指针。而这也正是使用typeof操作符检测null值,会返回“object”的原因。

3、Boolean:即布尔类型,该类型有两个值:true

false。需要注意的是,Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其它的混合大小形式)都不是Boolean值,只是标识符。

4、Number:该类型的表示方法有两种形式,第一种是整数,第二种为浮点数。整数:可以通过十进制,八进制,十六进制的字面值来表示。浮点数:就是该数值中必须包含一个小数点,且小数点后必须有一位数字。

5、String:String类型用于表示由零或多个16位的Unicode字符组成的字符序列,即字符串。至于用单引号,还是双引号,在js中还是没有差别的。记得成对出现。

6、Symbol类型

符号 (Symbols) 是 ECMAScript 第 6 版新定义的。符号类型是唯一的并且是不可修改的

1

var s = Symbol()

Symbol 函数前不能使用 new 命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象

Symbol 函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述

7、Object:Object数据类型,称为对象,是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名(包含空字符串在内的任意字符串)的属性。

8、Array

JavaScript 数组用方括号书写。数组的项目由逗号分隔。

下面的代码声明(创建)了名为 cars 的数组,包含三个项目(汽车品牌):

1

var cars = ["Porsche", "Volvo", "BMW"];

数组索引基于零,这意味着第一个项目是 [0],第二个项目是 [1],以此类推。

ECMAScript中的数组和其他语言的数组有着相当大的区别:

  • ECMAScript 数组的每一项可以保存任何类型的数据;

  • ECMAScript数组的大小可以动态调整,可向数组添加元素或者删除元素;

【推荐学习:js基础教程】

9、Function

ECMAScript中的函数是对象,与其他引用类型一样具有属性和方法。因此,函数名实际是一个指向函数对象的指针。

1)、函数声明

1

2

3

4

5

6

7

function sum(num1,num2){   

    return num1+num2;

}//函数声明

 

var sum = function(num1,num2){ 

    return num1+num2;

};     //函数表达式 这里的分号很重要

2)、没有重载

1

2

3

4

5

6

7

8

9

function addSomeNumber(num){   

    return num + 100;

}

 

function addSomeNumber(num){   

    return num + 200;

}

 

var result = addSomeNumber(100);  //300

创建第二个函数时覆盖了引用第一个函数的变量addSomeNumber。

3)、函数声明与函数表达式

1

2

3

4

alert (sum(10,10));

function sum(num1,num2){   

    return num1+num2;

}

这样的代码可以正常执行。代码开始执行前,解析器会率先读取函数声明并将其添加到执行环境中,对代码求值前,JS引擎在第一遍会声明函数并将它们放到源代码树的顶部。但改为函数表达式就会出错。

4)、作为值的函数

  • 像传递参数一样把一个函数传递给另一个函数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

function callSomeFunction(someFunction,someArgument){  

    return someFunction(someArgument);

}

 

function add10(num){

    return num+10;

}

 

var result1 = callSomeFunction(add10,10);

alert(result1);  //20

 

function getGreeting(name){

    return "Hello"+name;

}

var result2 = callSomeFunction(getGreeting,"Mike");

alert(result2);  //Hello Mike

 

//callSomeFunction是通用的,函数作为第一个参数传递进去,返回执行第一个参数后的结果

  • 从一个函数中返回另一个函数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

function createComparisonFunction(propertyName){

    return function(object1,object2){

        var value1 = object1[propertyName];

        var value2 = object2[propertyName];

        if(value1<value2){

            return -1;

        }else if(value1>value2){

            return 1;

        }else{

            return 0;

        }

    }

}

 

var date = [{name:"Mike", age:28},{name:"Amy", age:29}];//创建包含两个对象的数组

date.sort(creatComparisonFunction("name"));

alert(date[0].name);//Amy

date.sort(creatComparisonFunction("age"));

alert(date[0].name);//Mike

更多编程相关知识,请访问:编程视频!!

以上就是javascript有哪几种数据类型的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript中const和object.freeze()的差异

javascript中字符串替换函数是什么

javascript的常用事件有哪些

js代码怎么注释

javascript判断"字典"为空的方法

css实现基于用户滚动应用(代码)

详解javascript数组开头添加元素的3种方法

javascript var是什么

页面javascript如何获取后台传到页面的值

javascript运行没有效果是怎么回事?

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...