您的位置:首页 > Web前端 > JavaScript

Javascript学习笔记1-基本数据类型

2011-10-07 15:25 981 查看
1、Javascript 是区分大小写的, 也就是说 var nun 与 var Num 是不同的变量
2、Javascript 的变量是松散类型、也就是说一个变量可以保存任何类型的数据。每个变量仅仅是一个保存值得展位符而已。
3、Javascript 包括六中数据类型:Undefined/Null/Boolean/Number/String /Object.
使用 typeof 操作符可以检查变量当前保存的数据的类型,typeof 返回对应的字符字符串
'undefined'/'boolean'/'number'/'string'/'object'/'function'
4、Undefined 只有一个特殊的值 undefauld 表示只生命了变量但是没有为变量赋值,使用typeof操作符时。没有初始化的变量和没有声明的变量一样返

回‘undefined’例如:

  

var a ;
alert( typeof a); // 输出 'undefined'
alert(typeof b) ; // 输出 'undefined' 注意b没有被声明


5、Null 表示空引用,因此 对Null值使用typeof 操作符的时候返回‘object’;
实际上 Undefined 派生自 Null 所以 对 undefined == null 总是返回 true值。
应该总是对声明的变量初始化值,这样就可以区分 null 和Undefined。
6、Boolean 只有两个字面值:'true'和‘false’,区分大小写,true不等于1,false也不等于0;
可以调用转型函数Boolean(source)将任何数据类型装换为boolean类型,也可以使用“!!”进行转型,“!!”模拟了转型函数的实现。

数据类型      true值                false值
Boolean       true                false
String         任何非空字符             “”(空字符)
Number        任何非0数字值(包括无穷大)     0和NaN
Object         任何对象 null
Undefined ---(无法转换) undefined
7、Number 类型
Number 类型可以表示整数和浮点数。包括十进制、八进制(以0开头,如果八进制的字面值超出了范围前导零会被忽略,后面的数值被当做十进制数)、十六

进制(0x开头)

var num1 = 070 ; //表示十进制的56
var num2 = 079; //将表示为十进制的79
var num3 = 0xA ; //表示十进制的10


7.1 浮点数值
保存浮点主旨的内存空间是保存整数的2倍,在计算时,如果小数点后面没有跟任何数字,或者浮点数本身就就是一个整数(如1.0),那么给之该值将会转换

为整数。
由于浮点数有舍入误差比如 在Javascript中 0.1+0.2 不等于0.3 而是0.30000000000000004,因此用用不要测试某个特定的浮点数值。浮点数的最高精度

为17位。
7.2 由于内存限制,Javascript不能保存所有数值,能够表示的最大的数值保存在Number.Max_Value 中一般是1.7976931348623157e+308,最小值保存

在Number.Min_Value 中 一般是5e-324.如果一个数字查出这个数值范围,那么会被自动转换为特殊值Infinity值,如果这个数是个负数,则表示为-Infinity(负

无穷大),反之表示为+Infinity(正无穷大)。Infinity无法参与计算。
使用isFinite() 可以判断数值是否是无穷大。
7.3 NaN
NaN 表示不是数字,NaN与任何值不不相等,包括其本省。
alert(NaN==NaN)将得到false;
可以使用isNaN() 判断参数是否是数字或者是否可怀疑转换为数字。如果是数字或者可以转换为数字将返回true 反之字返回false。
7.4 数字转换
1、Number() 函数的转换规则如下:
    如果是Boolean值,true和false分别转换为1和0
     如果是数字值,只是简单的传入和返回
     如果是null。返回0
     如果是Undefined 、返回NaN
     如果是字符串,遵循以下规则:
       1、如果字符串中直包含数字,则只将其转换为十进制数,如果是‘011’则转换为11
      2、如果字符串中包含有效的浮点格式,则将其转换为对应的浮点数值
       3、如果字符串中包含有效的十六进制数,将其转换为相同大小的十进制数值,
       4、如果字符串为空,则将其转换为0。
      5、如果字符窜包含除以上格式之外的字符、则将其转换为NaN。
    如果是对象,则调用valueOf方法,然后依照前面的规则进行转换、如果转换的结果是NaN,则调用对象的toString()方法,然后按照上面的规则转换

返回的字符串值

var num1 = Number('Hellow word ') ;// NaN
var num2 = Number('');                       //0
var num3 =Number('000001');            // 1
var num4 = Number('1.1');                   //1.1
var num5 =Number(true);                    //1


2、parseInt()接收两个参数、第一个是字符串值,第二个是转换格式,
parseInt() 是从头传入的字符串的第一个字符开始解析,一直解析到字符串末尾,或者是解析到遇见的第一个无效的数字字符为止。如果不传入第二个参

数,parseInt()将根据传入的字符的模式进行匹配然后转换为对应的十进制数值。

var num1 = parseInt('70'); //70
var num2 = parseInt('070'); //56 由于第一个字符时“0”,识别为八进制
var num2 = parseInt('123abc'); //123
var num3 = parseInt('0xa'); //10


parseInt()可以接收的二个参数、表示转换的基数(进制)
 

var num1 = parseInt('70',8); // 56
var num2 = parseInt('079',10); //79
var num2 =parseInt("AF",16);  //175,因为已经显示指定了以AF为16进制所以可以转换
var num3 = parseInt("AF");// 由于没有指定基数,因此 报错


3、parseFloat() 与parseInt()类似,不过没有第二个参数。
8、String类型
字符串可以有双引号("")和单引号('')表示.因此 var name="小段"; 与var name ='小段';没有区别,但是以双引号开头的字符串必须以双引号结尾,以单

引号开头的字符串也必须以单引号结尾。
可以通过字符串变量的length属性查看字符串的长度。
Javascript中字符串是不可变的。也就是说,一个字符串一旦为创建之后其值就是不可变的,要改变某个变量保存的字符串,就必须首先销毁原来的字符串,

然后创建一个包含新值的字符串来填充该变量。
可以调用值的toString() 方法返回对应的字符串表现;
9 Object 类型
Javascript 中的对象是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。创建Object对象的实例,然后为其添加属

性和方法,既可以创建自定义的对象。
var o = new Object();
Object 类型是所有其他实例的基础。
Object 类型的所有实例都具有以下属性和方法:
1、Countructor 保存着用于创建当前对象的函数(相当于构造函数吧),
2、hasOwnProperty(protertyName) 检查给定的属性名是否存在于当前实例中(不是实例的原型中)。之中参数必须是一个字符串形式。
3、isPrototypeOf(Object)用户检查传入的对象是否是另一个对象的原型。
4、protertyIsEnumberable(propertyName),检查给定的属性名称对性的属性是否可以使用for-in语句进行枚举。
5、toString() 返回对象的字符串表示。
6、valueOf() 返回对象的数字、布尔、字符串值表示,通常与toString() 返回的值相同。
**********************************************************************************
* IE的Javascript实现中,只有开发人员定义的对象才继承自Object,而且,所有BOM和 *
* DOM对象也不同,可能不会有Object的所有属性和方法 *
**********************************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: