JavaScript基础

来源:互联网 发布:警察会抓网络时时彩 编辑:程序博客网 时间:2024/06/14 15:20

1.语法

ECMAScript大量借鉴了C及大量类C语言的语法

变量、函数名、操作符区分大小写

标识符的命名规范:必须以字母、下划线或美元符开头,不能包含特殊字符;遵循驼峰命名法

注释包括单行注释(//)与多行注释(/*   */)

每一条语句以分号结束

关键字和保留字

2.变量

ECMAScript的变量时松散类型的,可以用来保存任何类型的数据。

定义变量时要使用var关键字,后跟变量名

变量的初始化

变量的作用域与全局变量,省略var默认定义为全局变量

可以使用一条语句同时定义多个变量,变量之间用逗号隔开

3.数据类型

typeof 操作符:用来检测给定变量的数据类型,typeof(abc),其中括号不是必需的。

undefined :只有一个值,表示声明但未被初始化的变量,对于未被定义的变量使用typeof也会返回undefined,因此推荐对变量进行显式的初始化,可以判断变量是未被定义而不是未被初始化。

null :只有一个值,表示一个空对象指针,使用typeof 返回 object。实际上null派生于undefined,因此alert(null == undefined)总是返回true。如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值,这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined的区别。

Boolean :该类型只有两个字面值,true和false,而且必须是全小写形式,其他混合大小写形式都不是Boolean值,而是标识符。虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个值等价的值,要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()。

各种数据和Boolean值对应关系如下:

Boolean truefalse

String 任何非空字符串空字符串

Number 任何非零数字值(包括无穷大)0和NaN

Object 任何对象null

Undefined N/A,不适用undefined

Number :字面量格式可以是十进制、八进制和十六进制,使用IEEE754格式来表示整数和浮点数值,浮点数值进行数值计算会产生舍入误差,因此,不要测试某个特定的浮点数值。

数值范围 :由于内存的限制,ECMAScript并不能保存世界上所有的数值。EMCAScript能够表示的最小数值保存在Number.MIN_VALUE中,最大数值保存在Number.MAX_VALUE中。如果超出了这个范围,那么这个数值将被自动转换成特殊的Infinity值,分正负。可以使用isInfinity()函数判断一个数值是不是有穷的。

NaN :即非数值,是一个特殊的数值。这个数值用于表示一个本来要返回数值的操作未返回数值的情况,这样就不会抛出错误了。NaN有两个特性,任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等,包括NaN本身。isNaN()函数可用于判断一个变量是不是数值。

数值转换 :Number(),可以用于任何数据类型。

parseInt()、parseFloat()只能用于把字符串转换成数值。转换规则如下:

Number ()函数

Boolean true ——>1false——>0

Number 只是简单的传入和返回

null——>0

undefined——>NaN

如果是字符串,遵循下列规则:

如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,忽略前导零;

如果字符串包含有效的浮点格式,如“1.2”,则将其转换为对应的浮点数值,忽略前导零;

如果字符串中包含有效的十六进制格式,例如“0xf”,则将其转换为相同大小的十进制数值;

如果字符串是空的,则将其转换为0;

如果字符串中包含除上述格式之外的字符,则将其转换为NaN。

如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值,如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串。

由于Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是parseInt()函数,parseInt()函数在转换字符串时,更多的是看其是否符合数值模式,它会忽略字符串前面的空格,直至找到第一个非空格符。如果第一个字符不是数字字符或者负号,parseInt()函数就会返回NaN;如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。例如“122aaa”会被转换为122,而“22.3”会被转换为22,因为小数点并不是数字字符。parseInt()函数还有第二个参数,可以指定解析时的基数。

与parseInt()相似,parseFloat()也是从第一个字符开始解析每个字符,直到遇见一个无效的浮点数字字符为止,字符串中的第一个小数点是有效的,并且只能解析十进制数,因此始终都会忽略前导零,并且没有基数参数;如果字符串包含的是一个可解析为整数的数,返回整数。

String :表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或单引号表示。

转义字符

ECMAScript中的字符串是不可变的,也就是说字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

转换为字符串 :要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方法,数值、布尔型、对象和字符串值都有这个方法,null和undefined没有这个方法。其中,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。

在不知道转换的值是不是null和undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。如果值有toString()方法,则调用该方法并返回相应的结果;如果值是null,则返回“null”;如果是undefined,则返回“undefined”。

Object :var o = new Object(),其中如果不传递参数,括号也可以省略。对象有如下方法和属性:

hasOwnProperty(propertyName),用于检查给定的属性在当前实例中是否存在。

isPrototypeOf(),用于检查传入的对象是不是另一个对象的原型。

toLocaleString(),返回对象的字符串表示,该字符串与执行环境的地区对应。

toString(),返回对象的字符串表示。

valueOf(),返回对象的字符串、数值或布尔值表示,通常与toString()的返回值相同。

4.操作符

一元操作符 :递增、递减操作符,包括前置和后置两个版本;一元加减操作符;

位操作符;布尔操作符;乘性操作符;加性操作符;关系操作符;条件操作符;赋值操作符

5.函数

定义函数的方式有两种:一种是函数声明,另一种就是函数表达式。

函数声明的语法如下:

function functionName(arg0,arg1,arg2){  //函数体}

关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明。这就意味着可以把函数声明放在调用它的语句后面。

函数表达式有几种不同的语法形式:

var functionName = function(arg0,arg1,arg2){   //函数体  };

函数表达式与普通表达式一样,必须先赋值才能使用。

闭包 :闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。


0 0