1.原生js——数据类型和运算符

2017-11-21  本文已影响49人  取个帅气的名字真好

数据类型

JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值)

typeof运算符

typeof运算符可以返回一个值的数据类型。

1、原始类型
数值、字符串、布尔值分别返回number、string、boolean。

typeof 134 //"number"
typeof '你好'//"string"
typeof false//"boolean"
数值、字符串、布尔值.png
2、函数
函数返回function。
function a() {}
typeof a //"function"
函数.png

3、undefined
undefined返回undefined

typeof undefined //"undefined"
undefined.png

利用这一点,typeof可以用来检查一个没有声明的变量,而不报错。

检查一个没有声明的变量.png

4、其他

typeof window //"object"
typeof [] //"object"
typeof {} //"object"
typeof null //"object"
其他.png

5、布尔值

布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。

下列运算符会返回布尔值:
两元逻辑运算符:&& (And),|| (Or)
前置逻辑运算符: ! (Not)
相等运算符:===!====!=
比较运算符:>>=<<=

如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。

布尔值往往用于程序流程的控制 如:

if ('') {
  console.log(true);// 没有输出
}

上面代码的if命令后面的判断条件,预期应该是一个布尔值,所以JavaScript自动将空字符串转为布尔值false,导致程序不会进入代码块,所以没有任何输出。

空数组[])和空对象{})对应的布尔值,都是true

if ([]) {
  console.log(true); //true
}
if ({}) {
  console.log(true);//true
} 
空数组、空对象.png

运算符

1、算数运算符

2、赋值运算符

3、比较运算符

比较运算符比较两个值,然后返回一个布尔值,表示是否满足比较条件。

4、布尔运算符

5、位运算符

6、汇总表

优先级 运算类型 关联性 运算符
20 圆括号 n/a ( … )
19 成员访问 从左到右 … . …
19 需计算的成员访问 从左到右 … [ … ]
19 new (带参数列表) n/a new … ( … )
19 函数调用 从左到右 … ( … )
18 new (无参数列表) 从右到左 new …
17 后置递增(运算符在后) n/a … ++
17 后置递减(运算符在后) n/a … --
16 逻辑非 从右到左 ! …
16 按位非 从右到左 ~ …
16 一元加法 从右到左 + …
16 一元减法 从右到左 - …
16 前置递增 从右到左 ++ …
16 前置递减 从右到左 -- …
16 typeof 从右到左 typeof …
16 void 从右到左 void …
16 delete 从右到左 delete …
15 从右到左 … ** …
14 乘法 从左到右 … * …
14 除法 从左到右 … / …
14 取模 从左到右 … % …
13 加法 从左到右 … + …
13 减法 从左到右 … - …
12 按位左移 从左到右 … << …
12 按位右移 从左到右 … >> …
12 无符号右移 从左到右 … >>> …
11 小于 从左到右 … < …
11 小于等于 从左到右 … <= …
11 大于 从左到右 … > …
11 大于等于 从左到右 … >= …
11 in 从左到右 … in …
11 instanceof 从左到右 … instanceof …
10 等号 从左到右 … == …
10 非等号 从左到右 … != …
10 全等号 从左到右 … === …
10 非全等号 从左到右 … !== …
9 按位与 从左到右 … & …
8 按位异或 从左到右 … ^ …
7 按位或 从左到右 … | …
6 逻辑与 从左到右 … && …
5 逻辑或 从左到右 … || …
4 条件运算符 从右到左 … ? … : …
3 赋值 从右到左 … = …
3 从右到左 … += …
3 从右到左 … -= …
3 从右到左 … *= …
3 从右到左 … /= …
3 从右到左 … %= …
3 从右到左 … <<= …
3 从右到左 … >>= …
3 从右到左 … >>>= …
3 从右到左 … &= …
3 从右到左 … ^= …
3 从右到左 … |= …
2 yield 从右到左 yield …
yield* 从右到左 yield* …
1 展开运算符 n/a ... …
0 逗号 从左到右 … , …

ps:Undefined、Null、 +0、 −0、 NaN、空字符串为 false

上一篇 下一篇

猜你喜欢

热点阅读