JavaScript数据类型
JavaScript 语言含七种数据类型,分别是是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)以及Symbol。推荐阮大大的JavaScript 标准参考教程 作为全面的教材学习这些数据类型。下面是我的一些笔记,主要为了便于我自己配合教材复习。
1.Number(数字)
整数和小数:1 + .1 -> 1.1
科学记数法:1.23e2 -> 123
进制二进制:0b11 -> 3
八进制:011(为避免混淆,后来 ES5 添加了 0o11 语法)-> 9
十六进制:0x11 -> 17
2.String(字符串)
字符串就是零个或多个排在一起的字符,放在单引号或双引号之中
字符串默认写在一行(模仿命令行,命令行你按回车换行试试),那么就有了转义的概念
转义,主要用到反斜杠。
用转义换行用上面的方法就可以使得字符串换行了。但是反斜杠的后面必须是换行符,而不能有其他字符(比如空格),否则会报错。
空格看不见啊,所以这种换行方法不推荐,推荐下面这种
+号换行ES6新增(`)//位于键盘左上角,使得字符串可以直接换行,并且看不见的回车占一个字符长度
`字符串`另外转义符(\)还可以表现其他特殊字符
其他特殊字符3.Boolean(布尔值)
以数理逻辑学先驱 乔治.布尔 [著有 布尔代数 (我们常用的与或非逻辑)]名字命名
布尔值代表“真”和“假”两个状态。“真”用关键字 true 表示,“假”用关键字 false 表示。布尔值只有这两个值。true == 1,false == 0
JavaScript 中的与(&&)和或(||)
a && b 在 a 和 b 都为 true 时,取值为 true;否则为 false
a || b 在 a 和 b 都为 false 时,取值为 false;否则为 true
判断布尔值时,JavaScript 将下列值转为 false
转为false的6个值4.null(零的)和 5.undefined(未定义)
这俩个都表示没有值,是JavaScript特有的。
null 表示空值,即该处的值现在为空;undefined 表示“未定义”
区别:
null 转为数值时为0;undefined 转为数值时为 NaN
(规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
(习俗)如果你想表示一个还没赋值的对象,就用 null(老司机看到就懂你意图)。
没有赋值的对象如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)
6.Symbol(符号)
symbol 是ES6 引入的一种新的数据类型,其用来生成一个全局唯一的值。详细可看方老师的这篇文章
7.Object(对象)
上述数据类型是较为简单类型(基本类型),而 object 是复杂类型,其由这些简单类型组成。
下面例子中声明了一个名为 person 的对象,大括号里含有4个“键值对”(key-value),键值对之间可以用 ‘ , ’ 分隔(ES5版本以后)
对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名),符合标识符规定也可不加引号。
var person = {
name : 'David',
age : 18,
married : true,
'child' : { name: 'Jack' }
}
例子中的 object 包含了布尔值、字符串、数值等;由于其中的key都符合标识符规定,因此引号可以省略;object 里面可以有 object。
可以用 object['key'] 取到对应的 value,这里的 key 一定要加 ' ' ,若写作object[key] 其意思就变了;当 key 符合标识符规定时,object['key'] 也可以写作 object.key
如 person['name'] 和 person.name 都可以David
delete object['key'] 和 'key' in object
你可以用 delete object['key'] 删除 一个“键值对” ,可以用 'key' in object 来查看对应的键是否存在与对象中
如当你 delete person['age'] 后
当你 person.age 会返回 undefined 意思是没有此 value ,而 'age' in person 会返回 false
delete person['age']这时 person 里面已经没有 age : 18 这个“键值对”了
console.log (person)这与令 person.age = undefined 不同,这种情况下 key 依然存在
person.age = undefinedtypeof 操作符
我们可以用 typeof 操作符来得到JavaScript 语言的每一个值的数据类型,这些数据类型会用字符串表示
typeof可以看到,JS的数据类型在 typeof 时,大多返回其真实类型,但有俩个特例
第一个是 function ,它并不是JS的数据类型,但当你声明一个函数,然后去 typeof 它,它返回 "function"
typeof 函数返回"function"第二个是 null
typeof null 返回 "object"这是历史遗留问题
1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。
本文主要用于个人学习使用,如有侵权请联系我删除。
主要参考及文中出现链接:
网友评论