JavaScript学习笔记整理(2):类型、值和变量
1、数据类型
JavaScript语言的每一个值,都属于某一种数据类型。 JavaScript共有六种数据类型:数值(number):整数和小数
字符串(string):字符组成的文本
布尔值(boolean):true和false两个特定值。
undefined:表示未定义或不存在。
null:表示空缺,即此处应该有一个值,但此时为空。
对象(object):各种值组成的集合。
通常,我们将数值、字符串、布尔值称为原始类型(primitive type),即它们是最基本的数据类型,无法再细分了。而将对象称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。2、typeof运算符
在JavaScript中,我们可以用typeof运算符来确定一个值到底是什么类型。typeof 12 // "number"
typeof '12' // "string"
typeof false //"boolean"
(2)函数
函数返回function。function a(){}
typeof a // "function"
(3)undefined
undefined返回undefined。typeof undefined // "undefined"
可用typeof检测一个变量是否声明。if(typeof a === "undefined" ){
}
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
3、数值
JavaScript不区分整数值和浮点数值。JavaScript中的所有数字均用浮点数值表示。 JavaScript采用IEEE 754标准定义的64位浮点格式表示数字。十进制:没有前导0的数值。
八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的七个阿拉伯数字的数值。
十六进制:有前缀0x或0X的数值。
二进制:有前缀0b或0B的数值。
在十六进制中,0~9之间的数字和a(A)~f(F)之间的字母构成,a~f的字母对应的表示数字10~15
在浮点数中,我们还可以用指数记数法来表示,即在实数后跟字母e或E,后面再跟正负号,其后再加一个整型的指数。这种记数方法表示的数值,是由前面的实数乘以10的指数次幂。
12e3 /// 12*10*10*10=12000
1234567890123456789012
// 1.2345678901234568e+21
(2)小数点后的零多于5个// 小数点后紧跟5个以上的零,
// 就自动转为科学计数法
0.0000003 // 3e-7
特殊数值
-0 === +0 //true
NaN === NaN //false
isNaN方法可以用来判断一个值是否为NaN。isNaN(NaN) //true
isNaN(12) //false
注意:isNaN只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串。isNaN('a') //true
typeof value === 'number' && isNaN(value)
判断NaN更可靠的方法是,利用NaN是JavaScript之中唯一不等于自身的值这个特点,进行判断。value !== value
4、字符串
字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。'a'
"a"
单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号。'a 'b' '
字符串默认只能写在一行中。如果要拆分成数行,每行必须以反斜杠()结束。var a = " Hello
world
! ";
推荐在HTML中使用双引号,在JavaScript中使用单引号。var a = 'Hello' + 'world';
字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。
var a = 'hello';
a[0] // "h"
a[1] // "e"
length属性返回字符串的长度,该属性也是无法改变的。var a = 'hello';
delete s[0];
s // "hello"
s[0] = 'a';
s // "hello"