1 小知识点整理:
- js区分大小写
- 标识符命名规则和java一样
- 数据类型有五种:
undefined,Null,Boolean,Number和String
2 typeof操作符
用来判断数据类型的操作符(不是函数),例如:
undefined-如果这个值未定义
boolean-如果这个值是布尔值
string-如果这个值是字符串
number-如果这个值是数字(可以整形也可以浮点型)
object-如果这个值是对象或null
function-如果这个值是函数
例子:
var message="some string";
alert(typeof message); //"string"
alert(typeof 95); //"number"
alert(typeof null);//"object,因为null被认为是一个空对象引用"
3 Undefined
只有一个值,就是undefined,表示未对其进行初始化的变量
var message;
alert(message == undefined);//true,因为没有对变量进行声明
var message = undefined;
alert(message == undefined);//true,因为对变量声明的数据类型就是undefined
alert(typeof age);//undefined,因为变量没有进行声明
4 Null
- 也是只有一个值,就是null,表示一个空的对象指针。
- 假如定义的变量准备将来用于保存对象,那么最好将其初始化为null
- undefined派生自null值,所以用null判断时他两相等
alert(null==undefined);
5 Boolean
- 有两个值,并且由于js区分大小写,所以true和false只有一种写法,其他混合大写写法都不是。
- 假如要将值转为Boolean类型,可以使用Boolean函数,如:
var message= 12;
var messageBoolean = Boolean(message);
alert(messageBoolean);
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
Number | 任何非零数字 | 0和NaN |
String | 任何非空字符串 | " " |
Undefined | 不适用 | undefined |
Object | 任何对象 | null |
6 Number
-
对于极大值或者极小值,用科学计数法(e表示法),例如:
var num= 3.163e7; //表示31630000 -
数值范围:
如果某次计算的结果超出了js数值范围的值,那么自动转换为Infinity,就是假如是负数,则转换为-Infinity,假如是正数,则转换为Infinity。
要想确定数值是不是在js数值范围内,则使用isFinite()函数. -
NaN
表示非数值。(not a number)
表示任何一个本来想返回数值的操作数没有返回数值的情况。
任何涉及NaN的操作都会返回NaN.
任何数值除以非数值都会返回NaN.
isNaN()在接收到一个值后,会尝试将其转为数值,若可以转则为false,若不可以则为true,例如:
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false
alert(isNaN("10")); //false(转成10)
alert(isNaN("blue")); //true(不能转)
alert(isNaN(true)); //false(转换成1)
- 数值转换
有三个函数可以将非数值转换为数值:Number(),parseInt()和parseFloat(),第一个用于任何数据类型,
后面两个用于字符串转数值。
Number()函数转换规则:
- Boolean值,true->1,false->0;
- null值,转换为0;
- undefined,返回NaN;
- 如果是字符串,忽略前导0(000456转换为456),空的转换为0,十六进制格式转换为等价的十进制,有数字只取数字
其他转换为NaN。
parseInt()函数转换规则(看遇到的第一个字符):
忽略字符串前面的空格,直到找到第一个非空字符。假设第一个字符不是数字或负号,那么返回NaN,同样忽略前导0,0开头当做八进制处理,0x开头当做十六进制处理,最后直到遇到不是数字的字符(遇到小数点停下,可以理解为取整)。
例如:
var num1 = parseInt("1234blue"); //1234
var num2 = parseInt(""); //NaN
var num3 = parseInt("0xA"); //10
var num4 = parseInt("22.5"); //22
var num5 = parseInt("070"); //56
var num6 = parseInt("0xf"); //15
可以为该函数提供第二个参数以此来确定使用的进制基数。
例如:
var num=parseInt(“AF”,16); //175,十六进制转换为十进制的175
parseFloat:
- 只解析十进制,十六进制始终都是0
- 第二个小数点才无效
- 始终忽略前导0
- 如果可以解析为整数,则解析为整数
7 String
字符串一旦创建,值就不能改变。要改变则不仅需要删除原来的值,还要开辟新的空间
例如:
var lang = "Java";
lang = lang + "Script";
先开辟空间创建JavaScript的字符串,然后把原来的java和script字符串。
转换为字符串:
采用toString方法,但null和undefined没有。
采用String函数可以转换任何类型,遵循以下规则:
值有toString()方法,则调用该方法;
值是null,返回"null";
值是undefined,返回"undefined";
8Object
定义:一组数据和功能的集合,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。
具有如下属性和方法:
- constructor:保存着用于创建当前对象的函数
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
- isPrototyoeOf(object):用于检查传入的对象是否是当前对象的原型
- propertyIsEnumrable(propertyName):用于检查给定的属性是否能用for-in来进行枚举。
- toString():返回对象的字符串形式
- valueof():返回对象的字符串、数值或布尔值表示。