JS数据类型小结
2018-08-16 本文已影响0人
李不远

数值number
JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1
与1.0
是相同的,是同一个数。
十进制:没有前导0的数值。
1
1.1
.1
二进制:有前缀0b
或0B
的数值。
0b11 //3
八进制:有前缀0o
或0O
的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值
011
十六进制:有前缀0x
或0X
的数值。
0xFF //255
科学计数法
123e3 //123000
123e-3 //0.123
-3.1E+12
.1e-23
正零和负零
JavaScript 内部实际上存在2个0
:一个是+0
,一个是-0
,区别就是64位浮点数表示法的符号位不同。它们是等价的。
NaN
NaN
是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。NaN
不等于任何值,包括它本身。
Infinity
表示无穷
字符串string
书写
'hello'
"world"
'' //空字符串
' ' //空格
转义
\
:在需要转移的字符前加此符号
\0 //null(\u0000)
\b //后退键(\u0008)
\f //换页符(\u000C)
\n //换行符(\u000A)
\r //回车键(\u000D)
\t //制表符(\u0009)
\v //垂直制表符(\u000B)
\' //单引号(\u0027)
\" //双引号(\u0022)
\\ //反斜杠(\u005C)
多行字符串
var s = '123 \
456'
var s = '123'+
'456' //推荐使用这种方法
var s = `123
456` //ES6[中间包含回车]
布尔值boolean
逻辑的基本单位true
和false
可以转换成false的值
false
'' //空字符串
0和NaN
null
undefined
运算符Symbol
加法运算符
1+1 //2
true+true //2
1+true //2
'a'+'bc' //'abc'
1+'a' //'1a' 只有有一个字符串,执行时都会变成字符串拼接
算数运算符
-
加法运算符:
x + y
-
减法运算符:
x - y
-
乘法运算符:
x * y
-
除法运算符:
x / y
-
指数运算符:
x ** y
-
余数运算符:
x % y
-
自增运算符:
++x
或者x++
-
自减运算符:
--x
或者x--
-
数值运算符:
+x
-
负数值运算符:
-x
赋值运算符
var x = 1
var x = y
x += y // 等同于 x = x + y
x -= y // 等同于 x = x - y
x *= y // 等同于 x = x * y
x /= y // 等同于 x = x / y
x %= y // 等同于 x = x % y
x **= y // 等同于 x = x ** y
比较运算符
-
<
小于运算符 -
>
大于运算符 -
<=
小于或等于运算符 -
>=
大于或等于运算符 -
==
相等运算符 -
===
严格相等运算符 -
!=
不相等运算符 -
!==
严格不相等运算符
布尔运算符
-
取反运算符:
!
-
且运算符:
&&
-
或运算符:
||
-
三元运算符:
?:
条件?true:false
与if…else具有同样表达效果。区别在于
if...else
是语句,没有返回值;三元条件表达式是表达式,具有返回值
位运算符
-
二进制或运算符(or):符号为
|
,表示若两个二进制位都为0
,则结果为0
,否则为1
。 -
二进制与运算符(and):符号为
&
,表示若两个二进制位都为1,则结果为1,否则为0。 -
二进制否运算符(not):符号为
~
,表示对一个二进制位取反。 -
异或运算符(xor):符号为
^
,表示若两个二进制位不相同,则结果为1,否则为0。 -
左移运算符(left shift):符号为
<<
-
右移运算符(right shift):符号为
>>
-
带符号位的右移运算符(zero filled right shift):符号为
>>>
其他
-
void
运算符的作用是执行一个表达式,然后不返回任何值,或者说返回undefined
。 -
逗号运算符用于对两个表达式求值,并返回后一个表达式的值。
'a', 'b' // "b" var x = 0; var y = (x++, 10); x // 1 y // 10
null
表示一个空指针对象
现在有对象,但是不想赋值
undefined
在使用
var
声明变量但未对其加以初始化时,这个变量的值就是undefined
变量没有值
对象object
对象其实就是一组数据和功能的集合
var person = {
name:'jean',
years:1991,
living:true
} //1.前面的key可以是空字符串'' 2.如果不加引号,必须服从标识符的书写规则
读取
可以使用括号运算符或者点运算符
person['name']
person.name //符合标识符的情况下
删除
delete person['name']
delete person.name
查看属性
Object.keys
var x = {
key1:1,
key2:2
};
Object.keys(x); //['key1','key2']
typeof
测试返回值
typeof 1 //返回'number'
typeof 'a' //返回'string'
typeof undefined //返回'undefined'
typeof null //返回'object' bug之一
typeof function f(){} //返回'function' bug之二
in 运算符
用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true
,否则返回false
。
for in循环
for...in
循环用来遍历一个对象的全部属性。
var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
console.log(obj[i]);
} //1,2,3