JS有哪些数据类型和常用方法

分享人:张雪飞

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

JavaScript简单介绍

JavaScript :

是脚本语言
是一种轻量级的编程语言。
它是可插入 HTML 页面的编程代码, JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

JavaScript 的诞生

1994年,网景公司开始考虑考虑开发一种客户端脚本语言来解决简单的处理问题,为即将在1995 年发行的 Netscape Navigator 2.0 浏览器开发一个称之为 LiveScript 的脚本语言,以便在浏览器和服务器(本来要叫它 LiveWire)端使用它,实现页面与使用者的互动。 当时网景公司正与sun公司合作,而sun公司正准备推出java语言,为了利于Java 这个因特网时髦词汇,网景公司将这门语言命名为了JavaScript。
1997年,以JavaScript1.1为蓝本的建议被提交给了欧洲计算机制造商协会 (ECMA,European Computer Manufactures Association)进行标准化. 经过数月的努力完成了ECMA-262——定义了一种名为ECMAScript的新脚本语言的标准。 第二年,ISO/IEC(国标标准化组织和国际电工委员会)也采用了ECMAScript作为标准(即ISO/IEC-16262)。
ECMAScript往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。
ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。
实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

核心(ECMAScript):由ECMA-262定义,提供核心语言功能;

文档对象模型(DOM):提供访问和操作网页内容的方法和接口;

浏览器对象模型(BOM):提供与浏览器交互的方法和接口。

2.知识剖析

2.1JavaScript数据类型有哪些
在ECMAScript中,将数据类型分为6种,分别是Undefined(未定义的值)、Null(空对象指针)、Boolean(布尔)、Number(数值)和String(字符串),还有一个复杂数据类型Object。
Undefined、Null、Boolean、Number都属于基本类型。Object、Array和Function则属于引用类型,String有些特殊,具体的会在下面展开分析。
2.2 Undefined数据类型

Undefined数据类型只是一个值,即特殊的undefined。在使用var声明变量但未对其进行初始化时,变量的值就是undefined。

                    
                        var q;
                        alert(q == undefined); //true
                    
                
2.3 Null数据类型
Null数据类型也是一个只有一个值的数据类型。其特殊值就是Null。
从逻辑上看,null是一个空的对象指针。当使用typeof操作符检测null值,会返回“object”
                        
                            var a = null;
                            typeof (a);
                            alert(null == undefined); //true
                        
                    
undefined值派生自null值。出现场景:对象不存在时
[注意1]null是空对象指针,而[]是空数组,{}是空对象,三者不相同
2.4 Boolean数据类型

Boolean数据类型,译作布尔值,只有两个字面量:true和false。它们是区分大小写的。

任何数据类型的值调用Boolean()函数都会返回一个Boolean值

如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。 否则,其值为 true(即使当自变量为字符串 "false" 时)!

2.5 Number数据类型
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
常用数据转换方法
  • 转数值:parseInt() 和 parseFloat()。
  • 转字符串: .toString()
  • 强制转换:访问数据内部内容,并将符合格式的内容进行转换
    Boolean(value) - 把给定的值转换成 Boolean 型;
    Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
    String(value) - 把给定的值转换成字符串;
对于极大或者极小数,用科学技术法e表示浮点数值。大多数浏览器中的最大值为1.7976931348623157e+308。超出JavaScript数值范围的值会返回一个特殊值Infinity值,正数为Infinity(正无穷),负数为-Infinity(负无穷)。其值无法继续参与下一步运算。可以使用isFinite()函数判别数值是不是有穷的。
                    
                        var num5 = 5.56e8; //556000000
                        
                    
                
NaN,非数值(Not a number)。表示一个本来要返回数值的操作未返回数值的情况,省去报错。
有两个特点:
1. 任何涉及NaN的操作都会返回NaN。
2. NaN和任何值都不相等,包括其本身。
                    
                        alert(NaN == NaN);   //false
                        alert(isNaN("10"));  //false 可以被转换成数值10
                        alert(isNaN("red")); //true  不能转换为数值
                        alert(isNaN(true));  //false 可以被转换成数值1
                    
                
2.6 String数据类型
String数据类型表示由零或者多个16位Unicode字符组成的字符序列,简称字符串。由('')("")表示。字符串是不可变的,一旦创建,值不能改变。
字符串在许多方面都和基本类型的表现相似,但其又是不可变的,因此可以将字符串看成行为与基本类型相似的不可变引用类型
使用toString(),可以将其他类型值转换成字符串,但是null和undefined不适用这个方法。使用String()函数可以将null和undefined进行转换。
                    
                        var value1 = 10;
                        var value2 = true;
                        var value3 = null;
                        var value4;
                        alert(String(value1));   //"10"
                        alert(String(value2));   //"true"
                        alert(String(value3));   //"null"
                        alert(String(value4));  //"undefined"
                    
                
2.7 Object数据类型

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

                    
                    1   var person = new Object();
                        person.name = "大娃";
                        person.age = 24;

                    2   var person = {
                        name: "大娃",
                        age:29  //最后一个属性不能添加逗号
                    }

                    3   var person = new Object();
                        person["name"] = "大娃";
                        person["age"] = 24;
                    
                

3.常见问题

问题一:如何判断数据类型

解决方案

使用typeof操作符。typeof操作符的操作数可以是变量也可以是数值字面量。需要注意的是 调用typeof null会返回"object",因为null被认为是一个空的对象引用。

问题二:常用数据转换方法
  • 转数值:parseInt() 和 parseFloat()。
  • 转字符串: .toString()
  • 强制转换:访问数据内部内容,并将符合格式的内容进行转换
    Boolean(value) - 把给定的值转换成 Boolean 型;
    Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
    String(value) - 把给定的值转换成字符串;

4.编码实战

                    
              一    var num1 = Number("Hello world!");   //NaN
                    var num2 = Number("");               //0
                    var num3 = Number("000011");         //11
                    var num4 = Number(true);             //1

                    var num2 = parseInt("");               //NaN
              二    var num1 = parseInt("12345world");   //12345
                    var num3 = parseInt("0xA");            //10(十六进制)
                    var num4 = parseInt(43.2);             //43
                    var num5 = parseInt("070");            //56(八进制)
                    var num6 = parseInt("70");             //70(十进制)

              三    var num1 = parseFloat("12345world");   //12345
                    var num3 = parseFloat("0xA");            //0
                    var num4 = parseFloat(43.288.5);         //43.288
                    var num5 = parseFloat("070.58");         //70.58
                    var num6 = parseFloat("3.123e3");        //70(十进制)     
                    
                

5.参考文献

一:ECMAScript 原始类型
二:ECMAScript 引用类型
三:ECMAScript 类型转换
四:JavaScript的三个组成部分

6.更多讨论

数组类型属于哪种类型?

                

                         var a=[];
                         alert(typeof a)  //Object

                
            

鸣谢

感谢大家观看

BY :张雪飞

鸣谢:沁修 | 高雪峰|刘明|刘其勇| 何华飒

Contact GitHub API Training Shop Blog About © 2016 GitHub, Inc. Terms Privacy Security Status He