类型、值和变量

JavaScript中的数据分为两类:原始类型(primitive type)和对象类型。

原始类型包括:数字、字符串和布尔值

javaScript中有两个特殊的原始值:null(空)和undefined(未定义),代表了各自特殊类型的为一的成员。

对象是属性的集合,每个属性都由“名/值对”构成,普通的javascript对象是命名值的无序集合

数组(array)是一种特殊的对象,表示带编号的值的有序集合

 

数字

javascript不区分整数值和浮点数值。所有的数字都用浮点数值表示

1.整型直接量

支持使用一个数字序列表示一个十进制整数

也支持16进制整型直接量

2.浮点型直接量

传统实数写法:整数部分、小数点、小数部分

指数计数法:前面的实数乘以10的整数幂

3.javaScript运算符

+、-、*、/、%

其他运算通过Math对象的属性定义的常量来实现:

4.无穷大和非数字值:Infinity和NaN

NaN有点特殊,它和任何值都不相等,包括自身。不能通过x==NaN判断x是非数值,应当使用x!=x来判断x是否为NaN。函数isNaN与此类似

5.JavaScript通过浮点数的形式只能表示有限的实数,所以在JavaScript中使用实数的时候,得到的常常只是真实值的一个近视表示

6.日期和时间

javaScript语言核心包包括Date()构造函数,用来创建表示日期和时间的对象。日期对象提供了简单的API

文本

字符串string是一组由16为值组成的不可变的有序序列。字符串和数组的索引从0开始

转义字符(\)

7.字符串的使用

加号可以连接字符串

.length可以得到字符串长度

8.模式匹配

JavaScript定义了RegExp()构造函数,用来创建表示文本匹配模式的对象,这些模式被称为“正则表达式”

包装对象

JavaScript对象是一种复合值:它是属性或已命名值的集合。通过“.”符号引用属性值。当属性值是一个函数的时候,称其为方法。通过

o.m()来调用对象o中的方法

 

9.变量声明

var i;

var sum;

var i,sum;

或者复制的途中声明

声明的重复和遗漏

重复声明变量是合法且乌海的,如果重复声明带有初始化器,那么这就和一条简单的赋值语句没有区别

遗漏声明会报错

10.变量作用域

全局变量拥有全局作用域

局部变量,只在函数内有定义,作用域是局部的。函数参数也是局部变量

在函数体内,局部变量的优先级高于同名的全局变量,如果重名,不特殊说明,全局会被局部遮盖

11.变量的提前声明

var scope="global";
function f(){
  console.log(scope);//这里输出的是“undefined",而不熟"global"
  var scope="local";
  console.log(scope);   
}

你可能会以为第一句会输出”global",其实不然。函数作用域的特征,局部变量在整个函数体始终是有定义的,局部变量会遮掩同名全局变量,这里自动将局部变量的声明提前了。不过赋值还是在第二行。

posted @ 2016-05-01 18:44  guodaxia  阅读(245)  评论(0编辑  收藏  举报