JS中的原始数据类型
- number:数字类型(整数和小数)
- string:字符串类型(一般用单引号或者双引号括起来的)
- boolean:布尔类型(值只有两个:true,false)
- null:空类型(值只有一个,即null)
- undefined:未定义(值只有一个,即undefined)
- object:对象类型
- symbol:表示独一无二的值(ES6新增)
1.number 数值
整数和浮点数
JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。
NaN:非数字类型。特点:① 涉及到的 任何关于NaN的操作,都会返回NaN ② NaN不等于自身。
isNaN()
函数用于检查其参数是否是非数字值。
isNaN(123) //false isNaN("hello") //true
2.String类型
字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。
下面两种字符串的写法都是有效的:
var firstName="Marry"; var firstName='Jane';
注意:
如果要在单引号字符串的内部,使用单引号,就必须在内部的单引号前面加上反斜杠,用来转义。双引号字符串内部使用双引号,也是如此。
字符串默认只能写在一行内,分成多行将会报错。如果要分成多行,在每一行的尾部加上反斜杠\
。
连接运算符+
可以连接多个单行字符串,将长字符串分成多行,输出时也是单行。
String类型包含了一些特殊的字符字面量,也叫转义序列。
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 空格 |
\r | 回车 |
\f | 进纸 |
\ | 斜杠 |
' | 单引号 |
" | 双引号 |
\xnn | 以十六进制代码 nn 表示的一个字符(0~F)。例:\x41 |
\unnn | 十六进制代码nnn表示的一个Unicode字符(0~F)。例:\u03a3 |
字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
length
属性返回字符串的长度,该属性也是无法改变的。
s.length // 5
s.length = 3;
s.length // 5
3.null和undefined
- Undefined 类型只有一个值,即特殊的undefined。 在使用var声明变量,但没有对其初始化,这个变量的值就是undefined。
- null 只有一个值null
null与undefined都可以表示“没有”,相等运算符(==)甚至报告两者相等
区别:有一个对象,还不想赋值,推荐给一个空值null
非对象,还不想赋值,推荐给一个undefined
4.布尔值(boolean)
布尔值只有两个true和false,在条件表达式中,会将表达式转换为布尔值,以进行下一步操作。除了以下六个falsy值外,其它一切转换为布尔值都为true。
undefined
null
false
0
NaN
空字符串
小技巧:要将其它值转换为布尔值可使用双重取反!!xxx
object类型
对象,就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
var a = {
name: 'cong'
age: '24'
}
- key必须为字符串形式,引号可以省略。
如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号
var a = {
name: 'cong',
age: '24',
9b: '20',//不合法
'9b'; '20' // 合法
}
- 调用方法:点方法和方括号法。
a.name
// 当键名符合标识符规则
a['9b']
//键名必须放在引号里面,否则会被当作变量处理 - 删除对象的属性
delete a['name']
a.name //undefinedd (无value)
'name' in a //false (无key)
- in运算符
检查对象是否包含某个属性,如果包含就返回true,否则返回false。
var obj = { p: 1 };
'p' in obj // true
- 遍历对象(for....in...)
for (var key in a) //此时打印出key的值
网友评论