#数据类型
unfineded,null,String,Number,Boolean,String,Object,Symbol。变量的类型可由typeof运算符得到。
Undefined
undefind表示未定义使用var声明变量但未对其加以初始化时,这个变量的值就是undefined1
2var a;
console.log(a)//undefind
其他典型用法
调用函数时,应该提供的参数没有提供,该参数等于undefined。
对象没有赋值的属性,该属性的值为undefined。
函数没有返回值时,默认返回undefined。
1
2
3
4
5
6
7
8function f(x){console.log(x)}
f() // undefined
var o = new Object();
o.p // undefined
var x = f();
x // undefined
Null
null时一个空对象指针表示“没有对象”,即该处不应该有值。使用typeof null时会返回object
典型用法
作为函数的参数,表示该函数的参数不是对象。
作为对象原型链的终点。
1
2Object.getPrototypeOf(Object.prototype)
// null
Boolean
Boolean()可以改变类型,其规则是
转变为true:
- Boolean: true
- String: 任何非空字符串
- Number: 任何非零数字(包括无穷大)
- Object: 任何对象
- Undefined: n/a(not applicable)
转变为false:
- Boolean: false
- String: “”(空字符串)
- Number: 0和NAN
- Object: null
- Undefined: undefined
例子:
1 | var message = "hello" |
Number
1 | var a = 10 //十进制数 |
e表示法
用e表示法白哦是的数值等于e前面的数乘e后面的数的10次幂
1.24e10 = 1.24*10^10
NaN
NaN 非数值,用来表示一个本来要返回数值的操作数未返回数值的情况。它有两个特点
- 任何涉及Nan的操作都会返回NaN
- NaN与任何值都不相等包括自身
alert(NaN == Nan) //false
isNaN()接受一个参数,可以检测参数是不是NaN。当接收到参数后,函数会尝试将这个值转换为数值,若不能转换则返回true。
1 | alert(isNaN(10))//false |
数值转换
有三个函数可以把非数值转换为数值
- Number()
- parseInt()
- parseInt()
Number转换的规律
- 如果是布尔值,true为1,false为0
- 如果是null,则返回0
- 如果是undefined则返回NaN
- 如果是字符串:
- 当字符串只有数字则将其转换为十进制数。
- 当字符串中包含有效的浮点格式,则换为浮点数
- 当字符串中有有效的十六进制格式,则将其转换为相同大小的十进制数
- 字符串空,变为0
- 如果包含上述格式之外的字符,变为NaN
parseInt会忽略字符前的空格,直到找到第一个费控个字符,如果不是数字字符或符号,则返回NaN。如果是则解析第二个字符,直到结束或没有数字字符。
1 | var number1 = parseInt("1234blue");//1234 |
parseInt还可以制定第二个参数来决定转换时采用的进制
var num = parseInt(“0xAF”, 16); //175
String
String类型用于表示由0或多个16位Unicode字符组成的序列(字符串)。字符串可以用 ‘’ 或 “” 表示,但不可以混用。ECMAScript中字符串不可改变,必须要销毁原来的字符串,再用一个新的去填充变量。
可以用toString()方法把值转换为字符串,接受一个参数指定进制
1 | var num = 10; |
Object
一组数据和功能的集合,用new创建1
var o = new Object()
Object的每个实例都具有下列方法。
constructor:保存着用于创建当前对象的函数。
hasOwnProperty(propertyName): 检查给定属性是否在当前对象实例
isPrototypeOf(object): 检查传入的对象是否为当前对象的原型。
propertyIsEnumrable(propertyName): 用来检查给定的属性能否用for-in
枚举toLocaleString(): 返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString(): 返回对象的字符串表示
- valueOf(): 返回对象的字符串,数值或布尔值表示