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;
};

 6,Math对象

Math是js中的一个对象,它提供了很多关于数学计算方面的方法.

需要记住的一些方法是:

1.Math.round(数字)  :将数字进行四舍五入以后的整数返回

2.Math.random()    :  返回一个0~1的随机数

3.Math.ceil(数字)   :将数字向上取整并返回

4.Math.floor(数字)  :将数字向下取整并返回

5.Math.pow(a,b)    :返回数字a的b次方

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

 

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

  1. JavaScript基础:数据类型的中的那些少见多怪

    原文:JavaScript基础:数据类型的中的那些少见多怪 Javascript共有6种数据类型,其中包括3个基本数据类型(string,number,boolean).2个特殊数据类型(undefi ...

  2. JavaScript 基础(数据类型、函数、流程控制、对象)

    一.JavaScript概述 1.1 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Script ...

  3. javascript基础二数据类型

    1.数据类型 javascript中的基本数据类型有4中,undefined,number,string,boolean 1.1 typeof关键字 typeof关键字可以获取一个变量的的类型.先举个 ...

  4. JavaScript基础原始数据类型的封装对象(013)

    JavaScript提供了5种原始数据类型:number, string, boolean, null, and undefined.对于前面3个,即number, string, 和boolean提 ...

  5. JavaScript基础,Cookies,Sessions

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  6. 初识 Javascript.01 -- Javascript基础|输出方式、变量、变量命名规范、数据类型、

    Javascript基础 1 聊聊Javascript 1.1 Javascript的历史来源 94年网景公司   研发出世界上第一款浏览器. 95年 sun公司   java语言诞生 网景公司和su ...

  7. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  8. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

  9. JavaScript 基础类型,数据类型

    1.基础类型:undefined,null,Boolean,Number,String,Symbol Undefined类型:一个没有被赋值的变量会有个默认值undefined; Null类型:nul ...

随机推荐

  1. ionic中generate page后module.ts报错的解决办法

    此问题出现在Ionic官方将版本从2.2升级到Ionic3以上之后, 在项目中generate page时,自动创建的module.ts就报错,如下: 解决办法如下: 1)将IonicModule替换 ...

  2. mysql replace语句

    语法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 REPLACE [LOW_PRIORITY | DELAYED]     [INTO] tbl_name     [ ...

  3. 利用扩展方法重写JSON序列化和反序列化

    利用.NET 3.5以后的扩展方法重写JSON序列化和反序列化,在代码可读性和可维护性上更加加强了. 首先是不使用扩展方法的写法 定义部分: /// <summary>  /// JSON ...

  4. Hive,HANA可视化客户端工具

    目前市面上的Hive可视化客户端工具,大都是C/S模式的,安装使用都不是太方便,目前有一款基于WEB的可视化工具TreeSoft,通过浏览器就可以访问使用了,并且可以同时管理.维护.监控MySQL,O ...

  5. 浅谈equals和==

    在java中equals和==都是用来作比较的,可是你知道他们之间有什么区别和联系吗? 首先,在Object类中,本质上equals和==都是一样的,如果查看源码,你会发现这里面equals的内部实现 ...

  6. MQ之如何做到消息幂等 (转 优秀)

    一.缘起 MQ消息必达,架构上有两个核心设计点: (1)消息落地 (2)消息超时.重传.确认 再次回顾消息总线核心架构,它由 发送端.服务端.固化存储.接收端 四大部分组成. 为保证消息的可达性,超时 ...

  7. Code Signal_练习题_commonCharacterCount

    Given two strings, find the number of common characters between them. Example For s1 = "aabcc&q ...

  8. 解决ie6、ie7下float为right换行的情况

    IE6下有不少奇怪的Bug,今天就碰到一个,float:right换行bug,情况是并列的几个块级元素如div和span,一些设置了左浮动一些设置右浮动,一行的宽度足够放下所有的块级元素,但此时ie6 ...

  9. Git——克隆部分文件

    在进行项目开发的时候,有时候会有这样的需求那就是:我们只希望从Git仓库里取指定的文件或者文件夹出来.在SVN里面,这非常容易实现,因为SVN基于文件方式存储,而Git却是基于元数据方式分布式存储文件 ...

  10. 分享到xxx

    来源百度 一.概述 百度分享代码已升级到2.0,本页将介绍新版百度分享的安装配置方法,请点击左侧列表查看相关章节. 二.代码结构 分享代码可以分为三个部分:HTML.设置和js加载,示例如下: 代码结 ...