JavaScript基础之数据类型部分总结

JavaScript 是世界上最流行的脚本语言,被设计为向 HTML 页面增加交互性。

我把它的基础语法分为了三个部分:数据类型,运算符,流程控制语句。入门还是比较容易的。

基本概念:

标识符:指变量、函数、属性的名字,或者函数的参数。

命名规则:可以由字母,数字,下划线_, $组成,但是不能以数字开头,对大小写敏感,区分大小写。

JavaScript是弱类型语言,定义变量的时候不用指定变量的类型。定义变量时要使用 var 操作符,比如,var a=10; var b=”hello”; var c=true;

关键字

ECMA-262描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或 者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是 JavaScript 的全部关键字(带*号上标的是第 5版新增的关键字):

break   do    instanceof        typeof case  else  new   var  catch       finally      return    void     continue    for     switch     while      debugger*  function     this    with      default    if     throw    delete     in          try

ECMA-262还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定 的用途,但它们有可能在将来被用作关键字。以下是 ECMA-262第 3版定义的全部保留字

abstract      enum      int       short     boolean       export          interface      static    byte       extends         long         super      char          final           native     synchronized      class         float       package      throws     const         goto          private        transient     debugger      implements      protected      volatile     double        import          public

这些关键字和保留字也不用刻意去记忆,代码写的多了,那些经常见到的关键字就自然记住了。

第一部分:数据类型

JavaScript中有5种简单数据类型number,string,boolean,undefined,null和一种复杂数据类型object,object本质是由一组无序的键值对组成的。

数值型:Number

Number 类型 可以用来表示整数和浮点数值。也支持各种数值类型,包括八进制,十六进制等,但最常用的还是十进制。

所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。

JavaScript 能够表示的最小数值保存在 Number.MIN_VALUE 中——在大多数浏览器中,这个值是 5e-324;能够表示的最大数值保存在Number.MAX_VALUE 中——在大多数浏览器中,这个值是 1.7976931348623157e+308。如果某次计算的结果得到了一个超出 JavaScript 数值范围的值,那么这个数值将被自动转换成特殊的 Infinity 值。

NAN是Number类型中一个特殊的数值,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。

比如:var a=”a”;  a=a-1; 此时输出a的值就为NAN。

NaN 与任何值都不相等,包括 NaN 本身。

alert(isNaN(NaN)); //true
alert(isNaN(10)); //false( 10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)

这个例子测试了 5 个不同的值。测试的第一个值是 NaN 本身,结果当然会返回 true。然后分别测试了数值 10 和字符串"10",结果这两个测试都返回了 false,因为前者本身就是数值,而后者可以被转换成数值。但是,字符串"blue"不能被转换成数值,因此函数返回了 true。由于 Boolean 值 true可以转换成数值 1,因此函数返回 false。

字符串:String

字符串可以由双引号(")或单引号(‘)表示。字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量

常用转义字符:

\n 换行
\t 制表
\b 空格
\r 回车
\f 进纸
\\ 斜杠
\‘ 单引号(‘),在用单引号表示的字符串中使用。例如: ‘He said, \‘hey.\‘‘
\" 双引号("),在用双引号表示的字符串中使用。例如: "He said, \"hey.\""

布尔:Boolean

该类型只有两个字面值: true 和 false。

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

以下数据在转换成布尔值时都为false。

1,false

2,””(空字符串)

3,  0和NAN

4,null

5,undefined

未定义:undefined

Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其赋值时,
这个变量的值就是 undefined 。

空:null

Null类型也只有一个值,这个值就是null。如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。这样一来,只要直接检查 null 值就可以知道相应的变量是否已经保存了一个对象的引用。

实际上, undefined 值是派生自 null 值的,因此 ECMA-262 规定对它们的相等性测试要返回 true:
alert(null == undefined); //true

尽管 null 和 undefined 有这样的关系,但它们的用途完全不同。如前所述,无论在什么情况下都没有必要把一个变量的值显式地设置为 undefined,可是同样的规则对 null 却不适用。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存 null 值。这样做不仅可以体现 null 作为空对象指针的惯例,而且也有助于进一步区分 null 和 undefined。

在学习完6种数据类型之后有必要了解一下typeof操作符。

Typeof操作符用于检测给定变量的数据类型。对一个值使用typeof操作符可能会返回一下六种值。

1,如果这个值未定义或未赋值,返回”undefined”

2,如果是数值型,则返回”number”

3,如果是字符串,返回”string”

4,如果是布尔型,返回”boolean”

5,如果是对象或null,返回”object”

6,如果是函数,返回”function”.

这几种数据类型之间也是可以相互转换的,有时候需要将数字形式的字符串转换成数值进行运算,数据类型的转换请查看之前的博客。

总结完了简单数据类型,我们再看看复杂数据类型,也称为引用数据类型。

对象Object:

JavaScript中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,如下所示:
var o = new Object();

Object 的每个实例都具有下列属性和方法。
1,constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是 Object()。
2,hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例
的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例
如: o.hasOwnProperty("name"))。
3, isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型(第 5 章将讨论原
型)。
4, propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句,(本章后面将会讨论)来枚举。与 hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
5, toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
6, toString():返回对象的字符串表示。
7, valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值
相同。

JavaScript提供了很多原生引用类型,如object类型,Array类型,Date类型,RegExp类型,Function类型等。

1,object类型

我们看到的大多数引用类型值都是 Object 类型的实例 。

创建 Object 实例的方式有两种。第一种是使用 new 操作符后跟 Object 构造函数,如下所示:
var person = new Object();
person.name = "Nicholas";
person.age = 29;

另一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程。下面这个例子就使用了对象字面量语法定义了与前面那个例子中相同的person 对象:
var person = {
name : "Nicholas",
age : 29
};

2,Array类型

数组对象是使用单独的变量名来存储一系列的值。除了 Object 之外, Array 类型恐怕是 JavaScript 中最常用的类型了。而且, JavaScript 中的数组与其他多数语言中的数组有着相当大的区别。虽然 JavaScript 数组与其他语言中的数组都是数据的有序列表,但与其他语言不同的是, JavaScript 数组的每一项可以保存任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二位置来保存数值,用第三个位置来保存对象。

创建数组的基本方式有两种。

第一种是使用 Array 构造函数,如下面的代码所示。
var colors = new Array();
如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量,而该数量会自动变成 length属性的值。例如,下面的代码将创建 length 值为 20 的数组。
var colors = new Array(20);
也可以向 Array 构造函数传递数组中应该包含的项。以下代码创建了一个包含 3 个字符串值的数组:
var colors = new Array("red", "blue", "green");

创建数组的第二种基本方式是使用数组字面量表示法。数组字面量由一对包含数组项的方括号表示,多个数组项之间以逗号隔开,如下所示:
var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
var names = []; // 创建一个空数组

ECMAScript 5 新增了 Array.isArray()方法。这个方法的目的是最终确定某个值到底是不是数组,这个方法的用法如下。
if (Array.isArray(value)){
//对数组执行某些操作
}
支持 Array.isArray()方法的浏览器有 IE9+、 Firefox 4+、 Safari 5+、 Opera 10.5+和 Chrome。

关于操作数组的方法比较多,后续再做专题介绍。

3,Date类型

Date 类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能;

4,RegExp类型

RegExp 类型是 ECMAScript 支持正则表达式的一个接口,提供了最基本的和一些高级的正表
达式功能。 这部分内容也比较多,后续单独总结。

5,Function类型

由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。函数通常是使用函数声明语法定义的,如下面的例子所示。
function sum (num1, num2) {
return num1 + num2;
}
这与下面使用函数表达式定义函数的方式几乎相差无几。
var sum = function(num1, num2){
return num1 + num2;
};

还有基本包装类型,Math对象等后续再做总结吧。

 

时间: 2024-09-30 13:00:55

JavaScript基础之数据类型部分总结的相关文章

javascript基础语法-数据类型

二 javascript基础语法 (一)JavaScript 数据类型 ***************************************************************** 不同的编程语言往往有不同的数据分类,与C和Java等面向对象语言不同的是,JavaScript变量不需要明确的数据类型声明,在第一次对变量赋值的时候会根据数据值自动确定数据类型.这也是JavaScript简单易用的原因之一,作为初学者往往会在变量类型的转换上遇到问题,JavaScript就简化了

JavaScript基础学习--数据类型

JavaScript 数据类型 在 JavaScript 中有 5 中不同的数据类型: string number boolean object function 3 种对象类型: Object Date Array 2 个不包含任何值的数据类型: null undefined null 的数据类型是 object 未定义变量的数据类型为 undefined 如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都

JavaScript基础原始数据类型的封装对象(Primitive Wrapper Object)

JavaScript提供了5种原始数据类型:number, string, boolean, null, and undefined.对于前面3个,即number, string, 和boolean提供了封装对象,这些对象的构造函数是Number(), String(), 和Boolean().下面的代码展示了原始数据类型和它们的封装对象之间的不同: // a primitive number var n = 100; console.log(typeof n); // "number"

JavaScript基础(二)数据类型

javascript的变量一些问题 关于定义及undefined和 is not defined <script type="text/javascript"> a=40; console.log(a);//可以输出a=40,但不推荐,最好用var a = 40; console.log(b);// b is not defiend var c; console.log(c);// a undefiend </script> 两个变量值的交换 <scrip

javascript 基础知识1 数据类型

首先javascript是一种具有面向对象能力的,解释型程序设计语言. js对大小写敏感,一定要采取一致的字符大小写形式,在js中的结束分号(:)是可选的,为了避免JS语句错误,我们还是要注意添加,养成良好的编写习惯. 下面看看数据类型和值. JS有7种数据类型:字符串.数字.布尔.数组.对象.Null.Undefined 字符串类型:由Unicode字符,数字,标点符号组成的序列,可以为多个字符,也可以为0个字符. 1 <script> 2 // var用于声明一个变量 3 var stri

javascript基础入门之js中的数据类型与数据转换01

javascript基础入门之js中的数据结构与数据转换01 js的组成(ECMAScript.BOM.DOM)        js中的打印语句:        数据类型        变量        运算符        数据类型转换        js中三大特殊值 js的组成(ECMAScript.BOM.DOM) ①ECMAScript: ECMAScript是一个标准,它规定了语法.类型.语句.关键字.保留子.操作符.对象.(相当于法律):②BOM(浏览器对象模型):对浏览器窗口进行

Javascript.01 -- Javascript基础

Javascript基础 1 聊聊Javascript 1.1 Javascript的历史来源 94年网景公司   研发出世界上第一款浏览器. 95年 sun公司   java语言诞生 网景公司和sun合作. Java+script   ===> javascript 1.2 W3c规范 ?结构标准        html ?表现标准   css ?行为标准      js 1.3 JavaScript和ECMAScript的关系 ECMAScript是一种由Ecma国际前身为欧洲计算机制造商协

javascript基础学习(八)

javascript之日期对象 学习要点: 日期对象 将日期对象转换为字符串 将日期对象中的日期和时间转换为字符串 日期对象中的日期 日期对象中的时间 设置日期对象中的日期 设置日期对象中的时间 与毫秒相关的方法 一.日期对象 在javascript中并没有日期型的数据类型,但是提供了一个日期对象可以操作日期和时间. 日期对象的创建: new Date(); 二.将日期对象转换为字符串 将日期对象转换为字符串可以使用以下4种方法: date.toString();//将日期对象转换为字符串时,采

javascript基础学习(二)

javascript的数据类型 学习要点: typeof操作符 五种简单数据类型:Undefined.String.Number.Null.Boolean 引用数据类型:数组和对象 一.typeof操作符 typeof操作符用来检测变量的数据类型,操作符可以操作变量也可以操作字面量. 对变量或值运用typeof操作符得到如下值: undefined----如果变量是Undefined类型: boolean-------如果变量是Boolean类型: number-------如果变量是Numbe