JavaScript中“+”的解析
一、两个中括号相加
[] + []
中括号没有语句块的作用,因此这里的两个中括号就是一个数组。两个数组(对象类型)相加先要将其转换成值类型(基本类型)。
1,转成值类型调用valueOf,[]的valueOf()还是自己
复制代码 代码如下:
var arr = [];
eOf() === arr; // true
2,转成字符串,[]的toString是空字符串
复制代码 代码如下:
[]ring(); // ""
String([]) // ""
结果出来了。两个空字符串相加,结果仍然是空字符串。即这里的“+”指字符串连接而非数字相加。
二、大括号和中括号的相加
复制代码 代码如下:
{} + []
注意这里的大括号仍然不是对象直接量,而是空语句块。因此可以去掉它,即相当于
复制代码 代码如下:
+ []
注意,这时由之前看似的两个运算数变成了实际的单运算数。而“+”运算符当只有一个运算数时只代表一个意思:算术加运算。即这里没有字符串连接的`意思了。
中括号的toString()是空字符串,又相当于
复制代码 代码如下:
+ ""
“+”代表算术加运算,字符串非数字,因此将其转换成数字类型。空字符串转成数字类型在上一篇提到过,为0。
那么最后的结果就是0。
三、中括号和大括号相加
复制代码 代码如下:
[] + {}
与上面的对比,只是中括号和小括号交换了顺序。结果却不相同。大括号放到右边后,与上面讨论的大括号的意义不同了。这里的大括号就是一个对象直接量而非语句块。
“+” 两边的运算数转成值类型分别是:"" 和 "[object Object]"。这时 "+" 表示字符串连接。即
复制代码 代码如下:
"" + "[object Object]"
结果是 “[object Object]”。
四、小括号也和它们相加试试
突发奇想!好吧,小括号虽然有多义性,但它不能作为运算数。
-
论电影制作投资的困境与重要性
眼下的国内市场,股票崩盘、资本寒冬,仿佛唯有电影票房不断井喷,而电影行业也确实正在迎来更热的一波投资浪潮。小编特意撰写此文是为了是展示电影投资的风险特性,以及探讨电影基金背后的投资逻辑。1、挽救迪士尼的基金今日的娱乐巨头迪士尼在八十年代时,其实是好莱...
-
2017年Word2003巩固练习题「附答案」
一、判断题1.在插入表格对话框中可以调整表格的行数和列数.A正确B错误答案:A2003格式工具栏上也有打印预览按钮.A正确B错误答案:B3.在插入表格对话框中有一个自动套用格式按钮,可以套用现成的格式.A正确B错误答案:A4.文本框的位置无法调整,要想重新定位只能删掉该文...
-
2017年计算机应用基础试题带答案
一、选择题1、计算机系统由硬件系统和软件系统两部分组成,下列选项中不属于硬件系统的是__________。A.中央处理器B.内存储器C.I/O设备D.系统软件答案:D。解析:本题考查计算机系统基本组成的相关知识。计算机系统由硬件系统和软件系统两个部分组成。其中硬件系统...
-
餐厅店面设计要素
导语:对于设计师来说,商业空间的店面设计比家居设计或办公设计更有发挥的空间,因为每个品牌的形象都是不同的,对市场和消费者的定位也是有所不同,而设计师要做的就是为不同喜好,不同目的的消费者创造优质的餐饮空间。下面就由小编为大家介绍一下餐厅店面设计要素,希望...